ویژگی ها (Properties)
ویژگی یا Property در سی شارپ مثل پلی بین متغیرهای خصوصی و دنیای بیرون است. با آن می توانی داده ها را امن نگه داری و فقط از راه درست تغییرشان بدهی؛ مثل وقتی که رمز گوشی ات را فقط خودت می دانی، اما دیگران می توانند زنگ بزنند.
کپسوله سازی (Encapsulation)
کپسوله سازی یعنی داده های حساس را پنهان کنیم تا کسی اشتباهی آن ها را خراب نکند. برای این کار باید:
- متغیرها را
privateتعریف کنیم. - با استفاده از ویژگی ها (
Properties) دسترسی کنترل شده بدهیم.
ایجاد ویژگی با get و set
ویژگی مثل ترکیب متغیر و متد است. دو بخش دارد: get برای خواندن مقدار و set برای تغییر مقدار.
class Person
{
private string name; // فیلد خصوصی
public string Name // ویژگی عمومی
{
get { return name; } // خواندن مقدار
set { name = value; } // تنظیم مقدار
}
}
در اینجا value یعنی مقداری که می خواهی داخل ویژگی بگذاری. مثلاً وقتی می گویی myObj.Name = "Ali";، مقدار «Ali» همان value است.
استفاده از ویژگی ها در کلاس
حالا می توانی با ویژگی مقدار را بگیری یا تغییر دهی، بدون اینکه فیلد خصوصی مستقیم در دسترس باشد.
class Person
{
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
}
class Program
{
static void Main(string[] args)
{
Person myObj = new Person();
myObj.Name = "Liam";
Console.WriteLine(myObj.Name);
}
}
ویژگی خودکار (Automatic Property)
در ویژگی خودکار دیگر نیازی به تعریف فیلد خصوصی نداری. فقط get; و set; را می نویسی تا سی شارپ خودش فیلد را بسازد. این روش کوتاه تر و تمیزتر است.
class Person
{
public string Name { get; set; }
}
class Program
{
static void Main(string[] args)
{
Person myObj = new Person();
myObj.Name = "Liam";
Console.WriteLine(myObj.Name);
}
}
چرا از ویژگی ها استفاده کنیم؟
ویژگی ها چند مزیت دارند:
- امنیت داده ها را بیشتر می کنند.
- کد تمیزتر و قابل کنترل تر می شود.
- می توانی ویژگی را فقط خواندنی یا فقط نوشتنی کنی.
جمع بندی سریع
- ویژگی ها مثل دربان داده ها هستند.
getبرای خواندن مقدار است.setبرای تغییر مقدار است.- ویژگی خودکار کار را سریع تر می کند.
- با ویژگی ها امنیت و نظم بیشتری داری.
برای ادامه، بخش قیدهای دسترسی و وراثت را بخوان تا بیشتر با ساختار کلاس ها آشنا شوی.