📅  最后修改于: 2023-12-03 14:39:48.753000             🧑  作者: Mango
在C#中,访问修饰符可以用于类、结构体、接口、方法、属性、字段和嵌套类型等成员的声明中。访问修饰符用来限制程序中各个成员的访问范围,从而增强程序的封装性、安全性和可维护性。
下面是C#中的四个访问修饰符及其作用:
声明为public的成员可以在程序中的任何位置被访问。一个项目中的所有代码都可以访问public成员。所以,public成员是最不受限制的、最容易被外部访问的成员。
示例代码:
public class MyClass
{
public int MyPublicField;
public void MyPublicMethod()
{
// ...
}
}
声明为private的成员只能被定义它们的类所使用。其他类都不能访问private成员,即使是同一个命名空间下的其他类也不行。所以,private成员是最受限制的、最容易维护的成员。
示例代码:
public class MyClass
{
private int myPrivateField;
private void MyPrivateMethod()
{
// ...
}
}
声明为protected的成员只能被定义它们的类和类的子类所使用。其他类不能访问protected成员,即使是同一个命名空间下的其他类也不行。所以,protected成员是比private稍稍开放一些的成员。
示例代码:
public class MyBaseClass
{
protected int myProtectedField;
protected void MyProtectedMethod()
{
// ...
}
}
public class MyDerivedClass : MyBaseClass
{
public void MyPublicMethod()
{
myProtectedField = 1; // 这里可以访问基类的protected成员
MyProtectedMethod(); // 这里可以调用基类的protected方法
}
}
声明为internal的成员只能在同一个程序集内被访问。程序集是指一个或多个C#源代码文件编译成的二进制文件。这意味着,如果一个成员被声明为internal,则只有定义了该成员的项目中的代码才能访问它。其他项目的代码不能访问internal成员。
示例代码:
internal class MyInternalClass
{
internal int MyInternalField;
internal void MyInternalMethod()
{
// ...
}
}
以上是C#中常用的四个访问修饰符的介绍。除此之外,还有一些其他的访问修饰符,比如protected internal和private protected。它们的作用会比较复杂,需要较高的C#编程水平才能理解和掌握。