قیدهای دسترسی (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فقط در همان پروژه.- قیدها نظم و امنیت به کدت می دهند.
برای ادامه مطالعه، صفحه سازنده ها و اعضای کلاس را هم ببین.