سطح دسترسی (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
}

آموزش Web Workers API در html

Web Storage API در HTML

مدیریت خطا (Exception) ها در سی شارپ (try و catch)
آموزش فایل ها (files) در سی شارپ
Enum (داده شمارشی) در سی شارپ
Interface (اینترفیس، واسط) ها در سی شارپ

Abstraction (کلاس انتزاعی) در سی شارپ
آموزش چند ریختی (Polymorphism) در سی شارپ
وراثت (Inheritance یا ارث بری) در سی شارپ
خصوصیات (Properties) کلاس ها در سی شارپ(Get and Set)