فرق بین Auto-Properties و Properties در سیشارپ

👈 ممکنه با Auto-Propertyها زیاد کار کرده باشید ولی اسمشو نشنیدید.


👁 بازدید : 104

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";

ولی در پراپرتی های معمولی این کار ابدا امکان پذیر نیست.

هنوز دیدگاهی ثبت نشده

تمامی‌حقوق‌مادی‌ومعنوی‌این‌سایت‌برای‌یادمیگیریم‌محفوظ است.