فرق بین Auto-Properties و Properties در سیشارپ
👈 ممکنه با Auto-Propertyها زیاد کار کرده باشید ولی اسمشو نشنیدید.
👁 بازدید : 128
1402/12/3 | 15:10 : تاریخ 📆
Propertyها :
پراپرتی ها بسیار شبیه به متغیرهای عادی هستند و میتونن کنترل دقیقتری بر میزان دسترسی به متغییرها فراهم کنن.همچنین میتونن عملکرد یا رفتاری اضافه داشته باشن.کلمه کلیدی get و set عاملی ست برای دستیابی پراپرتی به متغییر برای مقدار دهی و دریافت مقدار.
private string myProperty;
public string MyProperty
{
get { return myProperty; }
set { myProperty = value; }
}
// ************ OR ************
private string myProperty;
public string MyProperty
{
get
{
Console.WriteLine("When Value Is Read");
return myProperty;
}
set
{
Console.WriteLine("When Value Is Set");
myProperty = value;
}
}
اما ممکنه اصطلاحی به نام Auto-Properties رو نشینیده باشید و خیلی با اون سرکار داشته باشید.
public string MyProperty { get; set; }
public string MyProperty { get; private set; }
public string MyProperty { get; protected set; }
public string MyProperty { private get; private set; }
در اصل وقتی شما عملکرد یا رفتار اضافه تر برای پراپرتی های خودتون در نظر نداشته باشید و صرفا جهت دیتا ترنسفر یا دیتا استراکچر بخواهید ازشون استفاده کنید، این یعنی شما دارید از Auto-Propertyها بهره میبرید.مثل وقتی که شما میخواهید یک انتیتی تعریف کنید یا حتی یک DTO.
بعضا Auto-Implemented Propertyها هم ممکنه جایی ببینید که همون مقصود بالا رو داره.
لازم به ذکره که Auto-Propertyها میتونن هنگام تعریف مقدار اولیه داشته باشن که این مقدار بعدا قابل تغییره
public string MyProperty{ get; set ;} = "My New Property";
ولی در پراپرتی های معمولی این کار ابدا امکان پذیر نیست.
Propertyها :
پراپرتی ها بسیار شبیه به متغیرهای عادی هستند و میتونن کنترل دقیقتری بر میزان دسترسی به متغییرها فراهم کنن.همچنین میتونن عملکرد یا رفتاری اضافه داشته باشن.کلمه کلیدی get و set عاملی ست برای دستیابی پراپرتی به متغییر برای مقدار دهی و دریافت مقدار.
private string myProperty;
public string MyProperty
{
get { return myProperty; }
set { myProperty = value; }
}
// ************ OR ************
private string myProperty;
public string MyProperty
{
get
{
Console.WriteLine("When Value Is Read");
return myProperty;
}
set
{
Console.WriteLine("When Value Is Set");
myProperty = value;
}
}
اما ممکنه اصطلاحی به نام Auto-Properties رو نشینیده باشید و خیلی با اون سرکار داشته باشید.
public string MyProperty { get; set; }
public string MyProperty { get; private set; }
public string MyProperty { get; protected set; }
public string MyProperty { private get; private set; }
در اصل وقتی شما عملکرد یا رفتار اضافه تر برای پراپرتی های خودتون در نظر نداشته باشید و صرفا جهت دیتا ترنسفر یا دیتا استراکچر بخواهید ازشون استفاده کنید، این یعنی شما دارید از Auto-Propertyها بهره میبرید.مثل وقتی که شما میخواهید یک انتیتی تعریف کنید یا حتی یک DTO.
بعضا Auto-Implemented Propertyها هم ممکنه جایی ببینید که همون مقصود بالا رو داره.
لازم به ذکره که Auto-Propertyها میتونن هنگام تعریف مقدار اولیه داشته باشن که این مقدار بعدا قابل تغییره
public string MyProperty{ get; set ;} = "My New Property";
ولی در پراپرتی های معمولی این کار ابدا امکان پذیر نیست.
هنوز دیدگاهی ثبت نشده