在C#中,访问修饰符是关键字,用于指定类成员(如变量、方法)的可访问性。以下是四种主要的访问修饰符:
public:公共访问修饰符允许类的成员在任何地方被访问。它没有任何限制。
private:私有访问修饰符允许类的成员只能在同一类中被访问。它是最严格的访问级别。
protected:受保护的访问修饰符允许类的成员在同一类中或者派生类中被访问。
internal:内部访问修饰符允许类的成员在同一程序集中被访问。
下面是一些示例代码来说明这些访问修饰符的使用:
public class MyClass
{
public int MyPublicInt; // 公共成员
private int MyPrivateInt; // 私有成员
protected int MyProtectedInt; // 受保护的成员
internal int MyInternalInt; // 内部成员
public MyClass()
{
MyPublicInt = 1; // 可以访问
MyPrivateInt = 2; // 可以访问
MyProtectedInt = 3; // 可以访问
MyInternalInt = 4; // 可以访问
}
}
public class MyDerivedClass : MyClass
{
public MyDerivedClass()
{
MyPublicInt = 1; // 可以访问
// MyPrivateInt = 2; // 无法访问,因为它是私有的
MyProtectedInt = 3; // 可以访问,因为它是受保护的
MyInternalInt = 4; // 可以访问,因为它是内部的
}
}
public class MyOtherClass
{
public MyOtherClass()
{
MyClass myClass = new MyClass();
myClass.MyPublicInt = 1; // 可以访问
// myClass.MyPrivateInt = 2; // 无法访问,因为它是私有的
// myClass.MyProtectedInt = 3; // 无法访问,因为它是受保护的
myClass.MyInternalInt = 4; // 可以访问,因为它是内部的
}
}
在这个例子中,MyClass
是一个包含四个不同访问修饰符的成员的类。MyDerivedClass
是MyClass
的派生类,它可以访问MyClass
的公共、受保护和内部成员,但不能访问私有成员。MyOtherClass
不是MyClass
的派生类,它只能访问MyClass
的公共和内部成员。这就是访问修饰符如何控制访问级别的一个例子。