فرق const و readonly
Const
• Const نمی تواند static تعریف گردد. (بطور ضمنی static می باشد. می توان ClassName.ConstantName آنها را فراخوانی کرد.)
• مقدار آنها در زمان کامپایل در کد IL ذخیره می گردد.(با تغییر مقادیر آنها لازم به کامپایل مجدد می باشد. در واقع در زمان کامپایل مثل find و replace کردن هرجا ثابت const باشد بجای آن مقدارش قرار می گیرد)
• می توانند هم static و هم غیر استاتیک (instance level) تعریف شوند.
• مقدار دهی آنها در run time انجام می شود.
• می توانند در قسمت declaration و هم در قسمت سازنده constructor مقدار دهی شوند.
• Const نمی تواند static تعریف گردد. (بطور ضمنی static می باشد. می توان ClassName.ConstantName آنها را فراخوانی کرد.)
• مقدار آنها در زمان کامپایل در کد IL ذخیره می گردد.(با تغییر مقادیر آنها لازم به کامپایل مجدد می باشد. در واقع در زمان کامپایل مثل find و replace کردن هرجا ثابت const باشد بجای آن مقدارش قرار می گیرد)
• Const را تنها در قسمت declaration می توان مقدار دهی کرد.
Readonly• می توانند هم static و هم غیر استاتیک (instance level) تعریف شوند.
• مقدار دهی آنها در run time انجام می شود.
• می توانند در قسمت declaration و هم در قسمت سازنده constructor مقدار دهی شوند.
برای مطالعه بیشتر می توان به اینجا و اینجا مراجعه کرد.
+ نوشته شده در یکشنبه دوازدهم خرداد ۱۳۹۲ ساعت 9:58 توسط وحید حسنی
|