📜  C#中的访问修饰符(1)

📅  最后修改于: 2023-12-03 15:00:17.323000             🧑  作者: Mango

C#中的访问修饰符

在C#中, 访问修饰符用于控制类、字段、方法、属性和其他成员的可访问性。有5种不同的访问修饰符,它们各自扮演不同的角色。理解它们之间的差异非常重要,因为这将有助于您在设计类和组织代码时做出明智的决策。

1. public

public 访问修饰符是最常用的访问修饰符,它指示公共成员,即任何其他代码都可以访问它们。这使其成为在类的外部公开API的理想选择。

public class MyClass
{
    public string MyPublicString = "Public string"; // 可以被其他代码访问
    private string MyPrivateString = "Private string"; // 只能在这个类的内部被访问
}
2. private

private 访问修饰符是指示私有成员的最常见的访问修饰符。它可以防止在同一类的其他成员中外部访问,以此保护其数据。

public class MyClass
{
    private string MyPrivateString = "Private string"; // 只能在这个类的内部被访问
    public void DisplayPrivateString()
    {
        Console.WriteLine(MyPrivateString); // 可以在类中的其他方法中使用
    }
}
3. protected

protected 访问修饰符是指示受到保护的成员的访问权限。这意味着只有在派生类或子类中才能访问它们。在其他地方, protected 成员就像私有成员一样不可见。

public class MyBaseClass
{
    protected string MyProtectedString = "Protected string"; 
}

public class MyChildClass : MyBaseClass  
{  
    public void DisplayProtectedString()
    {
        Console.WriteLine(MyProtectedString); // 可以在子类中访问
    }
}
4. internal

internal 访问修饰符声明成员只在定义它们的程序集的内部才可见。这对于在程序集内共享成员非常有用,但是不想公开在程序集外部。

internal class MyClass
{
    internal string MyInternalString = "Internal string"; // 只能在程序集中被访问
}
5. protected internal

protected internal 访问修饰符是同时使用 protectedinternal 的混合形式。它指示成员既可以在程序集的内部访问,也可以在派生类中访问。

public class MyBaseClass
{
    protected internal string MyProtectedInternalString = "Protected internal string";
}

public class MyChildClass : MyBaseClass  
{  
    public void DisplayProtectedInternalString()
    {
        Console.WriteLine(MyProtectedInternalString); // 在程序集内或子类中都可以访问
    }
}
结论

访问修饰符是C#中一项强大的特性,可以有效地控制代码的可访问性。当设计类和组织代码时,需要考虑访问修饰符的使用,以确保代码的良好设计和易维护性。