掌握C#访问修饰符:公开、私有、受保护和内部的区别与应用

作者:微信公众号:【架构师老卢】
12-11 9:54
1274

概述:C#中的访问修饰符决定了类成员的可访问性。`public`允许任何地方访问,`private`仅允许在同一类中访问,`protected`允许在同一类或派生类中访问,`internal`允许在同一程序集中访问。这些修饰符帮助我们在设计类和对象时实现封装和抽象,提高代码的可维护性和安全性。

在C#中,访问修饰符是关键字,用于指定类成员(如变量、方法)的可访问性。以下是四种主要的访问修饰符:

  1. public:公共访问修饰符允许类的成员在任何地方被访问。它没有任何限制。

  2. private:私有访问修饰符允许类的成员只能在同一类中被访问。它是最严格的访问级别。

  3. protected:受保护的访问修饰符允许类的成员在同一类中或者派生类中被访问。

  4. 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是一个包含四个不同访问修饰符的成员的类。MyDerivedClassMyClass的派生类,它可以访问MyClass的公共、受保护和内部成员,但不能访问私有成员。MyOtherClass不是MyClass的派生类,它只能访问MyClass的公共和内部成员。这就是访问修饰符如何控制访问级别的一个例子。

阅读排行