بهترین ها همه در یک جا
در زبان برنامهنویسی C#، دسترسی به اعضای یک کلاس (مانند متغیرها، متدها و خواص) با استفاده از Access Modifiers (محدودکنندههای دسترسی) کنترل میشود. سه مورد اصلی از این محدودکنندهها عبارتند از: public
، private
و protected
. در ادامه توضیح دقیق هر یک از این مفاهیم آورده شده است:
public
تعریف میشود، به این معناست که آن عضو قابل دسترسی از هر نقطهای در برنامه است.public class MyClass
{
public int MyPublicField = 10;
}
class Program
{
static void Main()
{
MyClass obj = new MyClass();
Console.WriteLine(obj.MyPublicField);
}
}
private
تعریف میشود، به این معناست که تنها در داخل همان کلاس قابل دسترسی است.public class MyClass
{
private int MyPrivateField = 20;
public void PrintPrivateField()
{
Console.WriteLine(MyPrivateField);
}
}
class Program
{
static void Main()
{
MyClass obj = new MyClass();
Console.WriteLine(obj.MyPrivateField);
obj.PrintPrivateField();
}
}
protected
تعریف میشود، به این معناست که تنها در داخل کلاس خودش و در کلاسهای مشتقشده (زیرکلاسها) قابل دسترسی است.public class BaseClass
{
protected int MyProtectedField = 30;
}
public class DerivedClass : BaseClass
{
public void PrintProtectedField()
{
Console.WriteLine(MyProtectedField);
}
}
class Program
{
static void Main()
{
BaseClass obj = new BaseClass();
// Console.WriteLine(obj.MyProtectedField);
DerivedClass derivedObj = new DerivedClass();
derivedObj.PrintProtectedField();
}
}
private
است.private
برای پنهان کردن جزئیات پیادهسازی و حفظ Encapsulation استفاده کنید.protected
برای اعضایی که باید در زیرکلاسها قابل دسترسی باشند استفاده کنید.public
برای اعضایی که باید در سراسر برنامه قابل دسترسی باشند استفاده کنید.انتخاب بین public
، private
و protected
به نوع طراحی کلاس و نیازهای برنامه بستگی دارد. استفاده صحیح از این محدودکنندهها به شما کمک میکند تا کدی با ساختاری تمیز، قابل نگهداری و امن بنویسید.
پاسخ نهایی :
public
: قابل دسترسی از همه نقاطprivate
: فقط در داخل کلاس قابل دسترسیprotected
: در داخل کلاس و زیرکلاسها قابل دسترسی