چرا برای یک فیلد پروپرتی تعریف میکنیم؟
مثال:
praivet string _fullname
public string fullname
get{}
set{}
چرا?
چرا برای یک فیلد پروپرتی تعریف میکنیم؟
مثال:
praivet string _fullname
public string fullname
get{}
set{}
چرا?
سلام، یکی از دلایلش می تونه این باشه که ما بخوایم یک سری عملیات رو قبل از انتصاب روی داده دریافتی اعمال کنیم.
مثال زیر رو در نظر بگیرید
int seconds;
public int minutes
{
get
{
return seconds/60;
}
set
{
seconds=value*60;
}
}
تو مثال بالا ما یه فیلد داریم که توش یه مقدار با عنوان ثانیه رو نگه می داریم
ولی هنگام دریافت مقدار از کاربر، یک مقدار با عنوان دقیقه از اون می گیریم
با متدهای get و set می تونیم روی داده خود کنترل داشته باشیم
البته این یه مثال بود ، نمیدونم متوجه شدی یا نه ولی چیز بهتری به ذهنم نرسید!
خب این که شما فرمودین میشه با نوشتن یک تابع اینکار رو انجام داد .میشه بیشتر در این مورد توضیح بدین.
سلام، با تابع هم میشه این کار رو کرد ولی پروپرتی ها برای خوانایی بیشتر و راحتی کار ساخته شدن.
توی مثال قبل موقعی که یه مقدار رو به پروپرتی تخصیص می دیم، عملیات درج شده توی متد set اتفاق می افته:
minutes=10;
ولی اگر قرار بود با تابع بنویسیم، با فرض تعریف تابع GetSecond، هر بار باید کدی شبیه کد زیر رو استفاده می کردیم
seconds=GetSeconds(10);
مسلما کد اول راحت تر و خواناتره
دقیقا همونطوری که دوستمان فرمودند کار کردن با پروپرتی راحتتره
ولب توجه داشته باشید که کامپایلر نهایتا قسمت set را در پروپرتی به همان تابع تبدیل می کند ولی این از دید ما مخفی است چون قراره کار ما راحتتر بشه.