سطح دسترسی (Access Modifiers) در سی شارپ

سطح دسترسی (Access Modifiers) در سی شارپ

زمان مطالعه

4 دقیقه

تعداد بازدید

148

تعداد پرسش ها

0

افزودن به لیست علاقه مندی ها


برچسب ها :


اشتراک گذاری این مطلب

سطح دسترسی (Access Modifiers)

تاکنون ، شما با کلمه کلیدی public که در بسیاری از مثالهای ما وجود دارد کاملاً آشنا شدید:

public string color;

کلید واژه public یک سطح دسترسی است ، که برای تنظیم سطح دسترسی برای کلاس ها ، فیلدها، متدها و خصوصیات استفاده می شود.

سی شارپ دارای Access Modifier های زیر است:

Modifier Description
public کد برای همه کلاسها قابل دسترسی است
private کد فقط در همان کلاس قابل دسترسی است
protected این کد در همان کلاس یا در کلاسی قابل دسترسی است که از آن کلاس به ارث رسیده است. در درس بعدی اطلاعات بیشتری در مورد ارث کسب خواهید کرد
internal در این حالت عنصر فقط درون پروژه جاری قابل دسترسی است

 

همچنین دو ترکیب وجود دارد: محافظت شده داخلی (protected internal) و خصوصی محافظت شده (private protected).

دسترسی 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);
  }
}

دسترسی Public 

اگر فیلدی را با سطح دسترسی public اعلام کنید ، برای همه کلاسها قابل دسترسی است:

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

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

چرا Access Modifiers؟

برای کنترل قابلیت مشاهده اعضای کلاس (سطح امنیتی هر کلاس و اعضای کلاس).

برای دستیابی به "Encapsulation" - این فرایند اطمینان از پنهان بودن اطلاعات "حساس" از سوی کاربران است. این کار با اعلام خصوصیات فیلدها انجام می شود.

توجه: به طور پیش فرض ، همه اعضای یک کلاس خصوصی هستند اگر سطح دسترسی را تعیین نکنید:

class Car
{
  string model;  // private
  string year;   // private
}

 


پرسش و پاسخ
0
دوره پیشنهادی
دوره پیشنهادی