babak1
سه شنبه 19 بهمن 1389, 11:29 صبح
سلام :
بحثی در این رابطه مطرح شده بود که چندتا سوال داشتم در موردش داشتم. بحث مطرح شده به شکل زیر است :
به جای نوشتن :
private string _userName;
public string userName
{
get { return _userName; }
set { _userName = value; }
}میتوانید بنویسید :
public string userName { get; set; }پیشنهاد خود مایکروسافت هم استفاده از حالت دوم است چون اگر snippet مربوط به prop رو اجرا کنید میبینید که برای این حالت تغییر یافته است.
چند نکته :
1- در پشت پرده و بصورت اتوماتیک ساختاری همانند پراپرتیهای سنتی تشکیل میشود اما دسترسی به فیلد آن امکان پذیر نیست.
2- اگر بخواهید یک پراپرتی فقط خواندنی یا فقط نوشتنی ایجاد کنید باید از همان روش سنتی استفاده کنید.
3- این نوع پراپرتی فقط جهت encapsualte کردن یک فیلد به کار میره و چنانچه نیاز به نوشتن عملیات خاصی (مثل اعتبارسنجی و ...) داشته باشید؛ باید از همان نوع سنتی استفاده کنید.
1- سوال من از بخش اول این هستش که اگه قراره _username توسط username از خارج از کلاس مقدار دهی بشه ، دیگه چرا لقمه رو می پیچونیم. خوب یک دفعه _username رو public کنیم و خلاص !!
سوال دوم رو بعد از این بحث مطرح می کنم.
با تشکر.
بحثی در این رابطه مطرح شده بود که چندتا سوال داشتم در موردش داشتم. بحث مطرح شده به شکل زیر است :
به جای نوشتن :
private string _userName;
public string userName
{
get { return _userName; }
set { _userName = value; }
}میتوانید بنویسید :
public string userName { get; set; }پیشنهاد خود مایکروسافت هم استفاده از حالت دوم است چون اگر snippet مربوط به prop رو اجرا کنید میبینید که برای این حالت تغییر یافته است.
چند نکته :
1- در پشت پرده و بصورت اتوماتیک ساختاری همانند پراپرتیهای سنتی تشکیل میشود اما دسترسی به فیلد آن امکان پذیر نیست.
2- اگر بخواهید یک پراپرتی فقط خواندنی یا فقط نوشتنی ایجاد کنید باید از همان روش سنتی استفاده کنید.
3- این نوع پراپرتی فقط جهت encapsualte کردن یک فیلد به کار میره و چنانچه نیاز به نوشتن عملیات خاصی (مثل اعتبارسنجی و ...) داشته باشید؛ باید از همان نوع سنتی استفاده کنید.
1- سوال من از بخش اول این هستش که اگه قراره _username توسط username از خارج از کلاس مقدار دهی بشه ، دیگه چرا لقمه رو می پیچونیم. خوب یک دفعه _username رو public کنیم و خلاص !!
سوال دوم رو بعد از این بحث مطرح می کنم.
با تشکر.