تبلیغات
تبلیغات

تفاوت const و readonly در سی شارپ چیست؟!

ممکن است تصور کنید که دو کلیدواژه‌ی const و readonly تفاوتی باهم ندارند و هردو برای این استفاده می‌شوند تا مقدار یک نوع تعریف شده، نتواند بعدا تغییر یابد! اما این دو باهم تفاوت زیادی دارند!

در جدول زیر، تقاوت دو کلیدواژه‌ی const و readonly آورده شده است:

const readonly
قابل استفاده برای فیلدها و متغیرهای محلی تنها قابل استفاده برای فیلدها
باید در هنگام تعریف مقداردهی شود هم میتواند در هنگام تعریف مقدار دهی شود و هم داخل متدسازنده‌ی کلاس (داخل متدهای دیگر نمیتوان مقداردهی کرد)
حافظه‌ی مموری به آن اختصاص نمی‌یابد! چراکه مقدار آن در خود IL (زبان میانی) و پس از کامپایل جاسازی شده است. یا به عبارت دیگر میتوان گفت hard-coded است؛ یعنی اینکه داده در خود سورس کد نگهداری شده و از آن خوانده میشود. حافظه‌ی مموری پویا (داینامیک) به آن اختصاص داده می‌شود و همچنین در زمان ران تایم مقداردهی می‌شود.
به صورت پیشفرض static است. static نبوده و همانند سایر اعضا است و برای استاتیک کردن آن باید static را ابتدای آن اضافه کرد.
مقدار آن در همه‌ی کلاس‌ها و آبجکتهای دیگر همواره یکسان است. مقدار آن به دلیل اینکه می‌تواند در داخل متد سازنده مقداردهی شود، ممکن است متفاوت باشد.
(البته در صورت استاتیک بودن یکسان خواهد بود)
تنها میتوان از آن برای تعریف انواع داده اولیه (primitive) خود زبان سی‌شارپ از جمله string, int و … استفاده کرد. قابل استفاده برای هرنوعی می‌باشد.
از آن نمیتوان به عنوان پارامتر ref و out استفاده کرد. از آن میتوان به عنوان پارامتر ref و out در بدنه‌ی متدسازنده استفاده کرد.
اگر فکر می‌کنید به مورد خاصی اشاره نشده است، آن را از طریق نظرات به اشترکا بگذارید.
کانال تلگرام فول کده
تبلیغات

درباره نویسنده

هادی اکبرزاده

[ مدیر فول کده ]

علاقه‌مند به اشتراک‌گذاری اطلاعات در هر زمینه‌ای
برنامه‌نویس فول استک

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

نظرات ثبت شده بدون دیدگاه