سلام
تفاوت این دو دستور در چیست وکاربرد کدام بهتراست
1)private string NationalID;
public string NationalId
{
get { return NationalID; }
set { NationalID = value; }
}
2)public string NationalID { get; set; }
سلام
تفاوت این دو دستور در چیست وکاربرد کدام بهتراست
1)private string NationalID;
public string NationalId
{
get { return NationalID; }
set { NationalID = value; }
}
2)public string NationalID { get; set; }
ببین همیشه تو برنامه نویسی روش اول توصیه میشه چرا چون اصلا پراپرتی ها برای کنترل ورود و خروج مقادیر به فیلدهای کلاسمون هستن کاربردشون اینه
سلام
نه دوست من، حکم نادرست صادر نکن. این دو دقیقاً یکی هستن.
اگه لازم باشه چیزی رو کنترل کنی، باید از روش اول استفاده کنی، در غیر این صورت همیشه Source کوتاهتر و سادهتر، خوانایی بیشتری داره.
اگه تو getter یا setter نخواهیم کد خاصی بنویسیم، خیلی بهتره که از auto property استفاده بشه.
حتا برای فقط خواندنی یا فقط نوشتی کردن یک Property هم میشه از auto property استفاده کرد.
صبا صبوحی
شاید از نظر کارایی یکی باشند ولی روش اول رو encapsulation میگند. یعنی تعریف متغیر های خصوصی و استفاده از اون ها فقط داخل کلاسی که خودتون ساختید. در اینصورت شما فقط اجازه میدید که از طریق متدها و پروپرتی ها به این متغیرها دسترسی داشته باشند.
سلام
خیر اینطور نیست و تفاوتی ندارند.شاید از نظر کارایی یکی باشند ولی روش اول روencapsulationمیگند. یعنی تعریف متغیر های خصوصی و استفاده از اون ها فقط داخل کلاسی که خودتون ساختید. در اینصورت شما فقط اجازه میدید که از طریق متدها و پروپرتی ها به این متغیرها دسترسی داشته باشند.
همونطور که جناب صبوحی فرمودند عملا این دو تفاوتی با هم ندارند ، بر اساس این مطلب شما وقتی یک Auto Property تعریف میکنید ، کامپایلر یک BackField بصورت خصوصی و بی نام برای دسترسی private در نظر میگیره.این دو تا دقیقاً یکی هستن. حالت دوم رو بهش Auto Property میگن و برای
خلاصه شدن حالت اول به #C اضافه شد.
موفق باشید.
قوانین سایت برنامه نویس [ به سوالات از طریق پیام خصوصی پاسخ داده نمی شود ]