📅  最后修改于: 2023-12-03 15:00:17.323000             🧑  作者: Mango
在C#中, 访问修饰符用于控制类、字段、方法、属性和其他成员的可访问性。有5种不同的访问修饰符,它们各自扮演不同的角色。理解它们之间的差异非常重要,因为这将有助于您在设计类和组织代码时做出明智的决策。
public
访问修饰符是最常用的访问修饰符,它指示公共成员,即任何其他代码都可以访问它们。这使其成为在类的外部公开API的理想选择。
public class MyClass
{
public string MyPublicString = "Public string"; // 可以被其他代码访问
private string MyPrivateString = "Private string"; // 只能在这个类的内部被访问
}
private
访问修饰符是指示私有成员的最常见的访问修饰符。它可以防止在同一类的其他成员中外部访问,以此保护其数据。
public class MyClass
{
private string MyPrivateString = "Private string"; // 只能在这个类的内部被访问
public void DisplayPrivateString()
{
Console.WriteLine(MyPrivateString); // 可以在类中的其他方法中使用
}
}
protected
访问修饰符是指示受到保护的成员的访问权限。这意味着只有在派生类或子类中才能访问它们。在其他地方, protected
成员就像私有成员一样不可见。
public class MyBaseClass
{
protected string MyProtectedString = "Protected string";
}
public class MyChildClass : MyBaseClass
{
public void DisplayProtectedString()
{
Console.WriteLine(MyProtectedString); // 可以在子类中访问
}
}
internal
访问修饰符声明成员只在定义它们的程序集的内部才可见。这对于在程序集内共享成员非常有用,但是不想公开在程序集外部。
internal class MyClass
{
internal string MyInternalString = "Internal string"; // 只能在程序集中被访问
}
protected internal
访问修饰符是同时使用 protected
和 internal
的混合形式。它指示成员既可以在程序集的内部访问,也可以在派生类中访问。
public class MyBaseClass
{
protected internal string MyProtectedInternalString = "Protected internal string";
}
public class MyChildClass : MyBaseClass
{
public void DisplayProtectedInternalString()
{
Console.WriteLine(MyProtectedInternalString); // 在程序集内或子类中都可以访问
}
}
访问修饰符是C#中一项强大的特性,可以有效地控制代码的可访问性。当设计类和组织代码时,需要考虑访问修饰符的使用,以确保代码的良好设计和易维护性。