فهرست سرفصل‌های #C
خانه (HOME) مقدمه (Intro) شروع کار (Get Started) سینتکس (Syntax) خروجی (Output) کامنت ها (Comments) متغیرها (Variables) ثابت ها (Constants) نمایش متغیرها (Display Variables) متغیرهای متعدد (Multiple Variables) شناسه ها (Identifiers) انواع داده (Data Types) تبدیل نوع (Type Casting) ورودی کاربر (User Input) عملگرها (Operators) انتساب (Assignment) مقایسه (Comparison) منطقی (Logical) ریاضی (Math) رشته ها (Strings) اتصال رشته ها (Concatenation) درون گذاری رشته (Interpolation) دسترسی به رشته ها (Access Strings) کاراکترهای ویژه (Special Characters) بولی ها (Booleans) if (If...Else) else (If...Else) else if (If...Else) شکل کوتاه if..else (Short hand if..else) سوئیچ (Switch) حلقه while (While Loop) حلقه for (For Loop) حلقه foreach (Foreach loop) شکستن/ادامه (Break/Continue) آرایه ها (Arrays) حلقه روی آرایه (Loop through an array) مرتب سازی آرایه ها (Sort arrays) آرایه های چندبعدی (Multidimensional arrays) متدها (Methods) پارامترها (Parameters) پارامتر پیش فرض (Default Parameter) مقادیر بازگشتی (Return Values) آرگومان های نام دار (Named Arguments) بارگذاری متد (Method Overloading) شیء گرایی (OOP) کلاس ها/اشیا (Classes/Objects) چند شیء (Multiple Objects) اعضای کلاس (Class Members) سازنده ها (Constructors) قیدهای دسترسی (Access Modifiers) ویژگی ها (Properties) وراثت (Inheritance) چندریختی (Polymorphism) انتزاع (Abstraction) اینترفیس (Interface) چند اینترفیس (Multiple Interfaces) شمارش ها (Enums) فایل ها (Files) استثناها (Exceptions) افزودن دو عدد (Add Two Numbers) نمونه ها (Examples)
#C

#C — ویژگی ها (Properties)

آخرین بروزرسانی: 1404/08/05

ویژگی ها (Properties)

ویژگی یا Property در سی شارپ مثل پلی بین متغیرهای خصوصی و دنیای بیرون است. با آن می توانی داده ها را امن نگه داری و فقط از راه درست تغییرشان بدهی؛ مثل وقتی که رمز گوشی ات را فقط خودت می دانی، اما دیگران می توانند زنگ بزنند.

کپسوله سازی (Encapsulation)

کپسوله سازی یعنی داده های حساس را پنهان کنیم تا کسی اشتباهی آن ها را خراب نکند. برای این کار باید:

  1. متغیرها را private تعریف کنیم.
  2. با استفاده از ویژگی ها (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 برای تغییر مقدار است.
  • ویژگی خودکار کار را سریع تر می کند.
  • با ویژگی ها امنیت و نظم بیشتری داری.

برای ادامه، بخش قیدهای دسترسی و وراثت را بخوان تا بیشتر با ساختار کلاس ها آشنا شوی.