PDA

View Full Version : آموزش: تفاوت بین Readonly و Const



hosseinsinohe
سه شنبه 10 فروردین 1389, 13:11 عصر
اگر ما دو Assembly داشته باشیم و در اسمبلی اول کلاسی همراه با دو فیلد readonly و Const داشته باشیم و از این کلاس در یک اسمبلی دیگر استفاده کنیم دقت داشته باشید در زمان کامپایل اسمبلی دوم هر جا از فیلد const استفاده کرده باشیم مقدار آن در کد کامپایل شده کپی می شود.در این حالت اگر مقدار فیلد const را در اسمبلی اول تغییر دهیم و آن را کامپایل کنیم،برای اینکه تغییرات اعمال شود نیازمندیم که اسمبلی دوم را نیز کامپایل کنیم تغییرات در کد اسمبلی دوم نیز اعمال گردد.اما اگر از یک فیلد به صورت readonly استفاده شود کافی است که فقط اسمبلی حاوی این فیلد کامپایل شود و نیازی به کامپایل کردن آن اسمبلی دوم نیست.در حقیقت فیلد تعریف شده به صورت Readonly یک متغییر می باشد و مکانی از حافظه را اشغال کرده است.فیلدهای const در زمان تعریف باید حتما مقداردهی شوند و نمی توان این کار را به بعد موکول کرد در حالی که فیلدهای readonly را می توان تعریف کرده و سپس در متد سازنده کلاس آنها را مقداردهی نمود.اما پس از آن مقدار این گونه فیلدها Readonly بوده و قابل تغییر نمی باشند.

منبع : www.stackoverflow.com (http://www.stackoverflow.com)