سلام
یه سوال خیلی ساده دارم و اونم اینه که چ فرقی بین این وتا کد هست
private int myVar;
public int MyVar
{
get { return myVar; }
set { myVar = value; }
}
public int MyVar { get; set; }
ممنون
سلام
یه سوال خیلی ساده دارم و اونم اینه که چ فرقی بین این وتا کد هست
private int myVar;
public int MyVar
{
get { return myVar; }
set { myVar = value; }
}
public int MyVar { get; set; }
ممنون
در ضمن تا یادم نرفته اگه بخوام متغییرم استاتیک باشه باید چیکار کنم ؟؟
دوست عزیز فرقش اینه که با توجه به قانون اول شی گرایی (کپسوله سازی) فیلد ها نباید در خارج از کلاس قابل دسترس باشند به چند دلیل مثلا طرف میتونه هر مقداری رو داخلش قرار بده درصورتیکه اگه با پراپرتی کار کنیم میتونیم براش محدودیت ایجاد کنیم ضمنا کابرد های دیگه ای هم هست که .........
در رابطه با متغییر استاتیک :
فقط متغغیر استاتیک میشه دیگه با پروپرتی کاری نداریم :لبخند؟؟
واقعیتش میخوام بدونم ستور دوم رو توی کلاس بنویسم (بدون تعریف متغییر) خود پروپرتی متغییر محسوب میشه؟؟فرقش اینه که با توجه به قانون اول شی گرایی (کپسوله سازی) فیلد ها نباید در خارج از کلاس قابل دسترس باشند به چند دلیل
یعنی دوستور دوم عینا معادل ستور اوله یا نه؟؟
ممنون
با سلام.
خود property در واقع یک procedure است که مقداری که به آن داده می شود به عنوان پارامتر به آن ارسال می شود و مقداری که از آن می گیریم مقدار بر گشتی تابع است، پس به عنوان متغیر محسوب نمی شود ولی در دستور دوم (auto-implemented property) به صورت خودکار یک backing فیلد توسط کمپایلر تعریف می شود تا مقدار در آن نگهداری شود، شبیه به دستور اول (regular property).
شما در صورتی از regular property استفاده می کنید که مثلا مقدار خصوصیت در زمان get نیاز به محاسبه دارد و یا در هنگام set باید تغییراتی با توجه به مقدار جدید اعمال شود. با این حساب دستورات بالا (صرفا در این مورد) تفاوتی با یکدیگر ندارند.
چشم ظاهر گر نبیند عیب نیست چشم دل گر ننگرد باید گریست**********اَلسَّلامُ عَلَى الْحُسَيْنِ وَ عَلى عَلِىِّ بْنِ الْحُسَيْنِ وَ عَلى اَوْلادِ الْحُسَيْنِ وَ عَلى اَصْحابِ الْحُسَيْنِ