PDA

View Full Version : سوال: Automatic Property



ACorvinus
یک شنبه 02 آبان 1389, 10:29 صبح
سلام دوستان.

میخواستم بدونم این نوع پروپرتی ها به چه دردی میخورن. اگه ممکنه در موردش کمی توضیح بدین:

public int myproperty
{
get;
set;
}

پیشاپیش از پاسخ شما متشکرم.

mmd2009
دوشنبه 03 آبان 1389, 01:59 صبح
با سلام

این پراپریتی که شما نوشتی دارای تو کلمه کلیدی get/set می باشد که شما هنگامی که میخواهید خاصیتی رو دریافت کنید از get استفاده می کنید و اعمال کردن هم خب دیگه مشخصه همون Set کردنه

برای مثال :

ما میخواهیم اطلاعات یک تکست باکس رو از فرم A به فرم B انتقال دهیم خب ابتدا باید از Set یعنی اعمال کردن یک مقدار به پراپریتی استفاده بکنید مثلا به روش زیر :



Form2 f2 = new Form2();
f2.mySTR = this.textBox1.Text;
f2.ShowDialog();


و حالا می خواهیم مقدار این پراپریتی رو اختصاصی بدیم به Text فرم از کدهای زیر استفاده می کنیم ( توجه کنید برای این کار از get استفاده میشه )




public string mySTR
{
get;
set;
}

private void Form2_Load(object sender, EventArgs e)
{
this.Text = mySTR;
}



موفق باشید

cardano7
دوشنبه 03 آبان 1389, 04:31 صبح
در یک کلام،
معادل دقیق همین کد هست:


private int _myproperty

public int myproperty
{
get{return _myproperty};
set{_myproperty=value};
}

با این تفاوت که دیگه به فیلد myproperty_ دسترسی ندارید.

مهدی کرامتی
دوشنبه 03 آبان 1389, 18:19 عصر
بعضی وقتها Property شما لازم نیست در متدهای get و set کاری انجام دهد، بلکه بنا بر شرایط لازم است Member مورد نظر در کلاس را به جای فیلد به صورت Property تعریف کنید.

به عنوان مثال وقتی از یک کلاس به صورت Data Type مورد استفاده در تعریف یک List استفاده می کنید و می خواهید از آن لیست به عنوان Data Source یک کنترل داده آگاه (Data Aware) استفاده کنید نمی توانید اعضای داده ای کلاس را به صورت فیلد تعریف کنید و میبایست به صورت Property تعریف شوند.