📜  c#中的访问修饰符是什么(1)

📅  最后修改于: 2023-12-03 14:39:48.753000             🧑  作者: Mango

C#中的访问修饰符

在C#中,访问修饰符可以用于类、结构体、接口、方法、属性、字段和嵌套类型等成员的声明中。访问修饰符用来限制程序中各个成员的访问范围,从而增强程序的封装性、安全性和可维护性。

下面是C#中的四个访问修饰符及其作用:

1. public

声明为public的成员可以在程序中的任何位置被访问。一个项目中的所有代码都可以访问public成员。所以,public成员是最不受限制的、最容易被外部访问的成员。

示例代码:

public class MyClass
{
    public int MyPublicField;
    public void MyPublicMethod()
    {
        // ...
    }
}
2. private

声明为private的成员只能被定义它们的类所使用。其他类都不能访问private成员,即使是同一个命名空间下的其他类也不行。所以,private成员是最受限制的、最容易维护的成员。

示例代码:

public class MyClass
{
    private int myPrivateField;
    private void MyPrivateMethod()
    {
        // ...
    }
}
3. protected

声明为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方法
    }
}
4. internal

声明为internal的成员只能在同一个程序集内被访问。程序集是指一个或多个C#源代码文件编译成的二进制文件。这意味着,如果一个成员被声明为internal,则只有定义了该成员的项目中的代码才能访问它。其他项目的代码不能访问internal成员。

示例代码:

internal class MyInternalClass
{
    internal int MyInternalField;
    internal void MyInternalMethod()
    {
        // ...
    }
}

以上是C#中常用的四个访问修饰符的介绍。除此之外,还有一些其他的访问修饰符,比如protected internal和private protected。它们的作用会比较复杂,需要较高的C#编程水平才能理解和掌握。