📅  最后修改于: 2023-12-03 15:30:19.530000             🧑  作者: Mango
在 C# 中,访问修饰符用于控制类成员(字段、方法、属性等)的可访问性。它们有 5 种级别:
public class Foo
{
public int PublicField;
private int PrivateField;
protected int ProtectedField;
internal int InternalField;
protected internal int ProtectedInternalField;
}
public class Bar : Foo
{
public void Test()
{
this.PublicField = 1;
// this.PrivateField = 1; // Error: 'Foo.PrivateField' is inaccessible due to its protection level
this.ProtectedField = 1;
this.InternalField = 1;
this.ProtectedInternalField = 1;
}
}
public class Baz
{
void Test()
{
Foo foo = new Foo();
foo.PublicField = 1;
// foo.PrivateField = 1; // Error: 'Foo.PrivateField' is inaccessible due to its protection level
// foo.ProtectedField = 1; // Error: 'Foo.ProtectedField' is inaccessible due to its protection level
foo.InternalField = 1;
foo.ProtectedInternalField = 1;
}
}
在这个示例中,我们创建了一个名为 Foo 的类,并定义了 5 个不同的字段,每个字段都有不同的访问修饰符。然后我们创建了一个继承自 Foo 的类 Bar,通过实例化并访问其字段来测试这些访问修饰符的可访问性。最后,我们创建了另一个名为 Baz 的类,并尝试访问 Foo 实例的字段,以测试不同程序集之间字段的可访问性。
访问修饰符是 C# 中的一个重要概念,用于控制类成员的可访问性。它们有 5 种级别,使用时需要根据具体情况进行选择。通常情况下,应该尽量将成员保持私有,只在必要的情况下对外提供公有接口。