شمارنده در #c
شناسه پست: 2166
بازدید: 1037

علاوه بر ساختارها، #C از value type دیگری به نام شمارنده پشتیبانی میکند. ما در این مقاله، بیشتر در مورد شمارنده ها در #C صحبت میکنیم.

این مقاله، سرفصلی از دوره آموزشی زیر میباشد:

اگر می خواهید محتویات کامل این دوره را ببینید ، می توانید بر روی لینک سطح متوسطه #C کلیک کنید.

برای دانلود سورس، بر روی لینک سورس شمارنده ها در #C کلیک کنید.

ما این مقاله را به قسمتهای زیر تقسیم مکینیم:

کار با شمارنده ها در #C

فرض کنید ما به روزهای هفته در پروژه مان نیاز داریم. ما میتوانیم یک عدد integer برای هر روز هفته (0 تا 6) در نظر بگیریم و حتی اگر این بسیار خوب هم کار کند اما به هیچ وجه خوانا نیست. اینجا جایی است که شمارنده ها برتری پیدا میکنند.

برای تعریف شمارنده میتوانیم از سینتکس زیر استفاده کنیم:

بعد از اینکه شمارنده خود را تعریف کردیم، میتوانیم از آن دقیقا به همان شیوه ای که از نوع های دیگر استفاده میکنیم استفاده نماییم:

همانطور که میبینیم باید بنویسیم DaysInWeek.Monday و نه اینکه فقط Monday را بنویسیم. زیرا تمام نامهای لغوی درون حوزه نوع شمارنده قرار دارند.

انتخاب مقادیر کلمات شمارنده

ذاتا، یک نوع شمارنده، به هر عنصر در داخل خود، یک عدد integer تخصیص میدهد. این اعداد از 0 شروع میشوند و برای هر عنصر دیگر، این عدد 1 واحد افزایش میابد. در مثال قبلی، ما مقداری که با عنصر دقیق در شمارنده مطابقت داشت را چاپ کردیم. اما ما میتوانیم مقدار integer مربوط به هر عنصر را نیز با cast کردن آن به نوع اصولی آن چاپ کنیم:

اگر ترجیح دهیم، میتوانیم یک عدد integer را به عناصر شمارنده اختصاص دهیم:

اگر همچین کاری را انجام دهیم، Monday مقدار 1 و بقیه عناصر یک عدد افزایش پیدا خواهند کرد (Tuesday=2, Wednesday=3…). اما ما میتوانیم به هریک از عناصر، یک مقدار تصادفی نیز تخصیص دهیم:

البته همیشه بهتر است اعداد integer با فاصله های مساوی را به عناصر اختصاص دهیم (1, 2, 3… or 10, 20, 30…).

انتخاب نوع اصولی در شمارنده ها

زمانیکه یک شمارنده را تعریف میکنیم، کامپایلر به طور پیشفرض اعداد integer را به تمام عناصر تخصیص میدهد. اما ما میتوانیم آن را تغییر دهیم. ما میتوانیم نوع متفاوتی را درست بعد از نام شمارنده اعمال کنیم:

با این کار، ما در مصرف حافظه صرفه جویی میکنیم، زیرا نوع int حافظه بیشتری را نسبت به نوع short اشغال میکند و ما در این مثالمان، ظرفیت بیشتر از نوع داده ای short را نیاز نداریم.

نتیجه گیری

در این مقاله ما یاد گرفتیم که:

  • شمارنده چیست و نحوه ایجاد آن به چه صورت است
  • چطور با مقادیر کلمات در شمارنده ها کار کنیم

در مقاله بعدی، ما در مورد وراثت در #C صحبت میکنیم.

نویسنده

امید عباسی
من امید عباسی هستم. سالهاست که در زمینه برنامه نویسی با تکنولوژی دات نت فعالیت میکنم و عاشق این هستم که تجربیات و دانش خودم را در این زمینه با دیگران به اشتراک بزارم. خیلی دوست دارم که نظر و انتقاد خودتون رو در مورد این نوشته برای من بنویسید تا بتونم در آینده، مطالب بهتر و ارزشمندتری را برای شما فراهم کنم. در صورت داشتن هرگونه سوال هم در قسمت دیدگاه ها میتونید با بنده در ارتباط باشید