فهرست سرفصل‌های #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 — قیدهای دسترسی (Access Modifiers)

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

قیدهای دسترسی (Access Modifiers)

قیدهای دسترسی مشخص می کنند که چه کسی می تواند به بخش های مختلف کد دسترسی داشته باشد. مثل وقتی که دفترت را فقط برای خودت قفل می کنی یا می گذاری همه بخوانند!

قید عمومی (public)

وقتی از public استفاده می کنی، یعنی همه کلاس ها و کدها می توانند به آن بخش دسترسی داشته باشند. مثل وقتی که دفترت را روی میز می گذاری و همه می توانند ببینند.

class Car
{
  public string model = "Mustang";
}

class Program
{
  static void Main(string[] args)
  {
    Car myObj = new Car();
    Console.WriteLine(myObj.model);
  }
}

مشاهده در ادیتور

قید خصوصی (private)

قید private یعنی فقط خود کلاس می تواند از آن استفاده کند. مثل دفتر قفل دار که فقط خودت کلیدش را داری.

class Car
{
  private string model = "Mustang";

  static void Main(string[] args)
  {
    Car myObj = new Car();
    Console.WriteLine(myObj.model);
  }
}

مشاهده در ادیتور

اما اگر از بیرون بخواهی به آن دسترسی پیدا کنی، خطا می دهد:

class Car
{
  private string model = "Mustang";
}

class Program
{
  static void Main(string[] args)
  {
    Car myObj = new Car();
    Console.WriteLine(myObj.model); // خطا می دهد
  }
}

مشاهده در ادیتور

سایر قیدها

در سی شارپ چند قید دیگر هم هست:

  • protected: قابل دسترسی در همان کلاس یا کلاس های فرزند.
  • internal: قابل استفاده فقط در همان پروژه یا اسمبلی.
  • protected internal: ترکیب دو مورد بالا.
  • private protected: ترکیب private و protected.

نکته: اگر قید ننویسی، پیش فرض private است. یعنی فقط در همان کلاس دیده می شود.

چرا از قیدهای دسترسی استفاده کنیم؟

قیدها به امنیت کد کمک می کنند. جلوی تغییر داده های حساس را می گیرند. مثلاً نگذار کسی نمره ات را در برنامه مدرسه عوض کند! این کار را «کپسوله سازی (Encapsulation)» می گویند.

جمع بندی سریع

  • public برای همه باز است.
  • private فقط برای همان کلاس.
  • protected برای کلاس و فرزندانش.
  • internal فقط در همان پروژه.
  • قیدها نظم و امنیت به کدت می دهند.

برای ادامه مطالعه، صفحه سازنده ها و اعضای کلاس را هم ببین.