首页 > 编程笔记 > C#笔记

C#访问修饰符的用法

C# 中定义类的成员时,用到了 public、private 等关键字,这些关键字就称作访问修饰符。

C# 中的访问修饰符主要包括 private、protected、internal、protected internal 和 public。这些访问修饰符控制着对类和类的成员变量、成员方法的访问。

下表所示为访问修饰符及其说明。
表:C#中的访问修饰符及其说明
访问修饰符 应用于 访问范围
private 所有类或者成员 只能在本类中访问
protected 类和内嵌类的所有成员 在本类和其子类中访问
internal 类和内嵌类的所有成员 在同一程序集中访问
protected internal 类和内嵌类的所有成员 在同一程序集和子类中访问
public 所有类或者成员 任何程序都可以访问

这里需要注意的是,在定义类时,只能使用 public 或者 internal,这取决于是否希望在包含类的程序集外部访问它。

例如,下面的类定义是合法的:
namespace Demo
{
    public class Program
    {
    }
}
正常情况下不能把类定义为 private、protected 或者 protected internal 类型,因为这些修饰符对于包含在命名空间中的类是没有意义的。因此这些修饰符只能应用于成员。

但是,可以使用这些修饰符定义嵌套的内部类(即包含在其他类中的类),因为在这种情况下,类也具有成员的状态。例如,下面的代码是合法的:
namespace Demo
{
   public class Program
   {
       private class Test
       {
       }
   }
}
如果有内部类,那么内部类总是可以访问外部类的所有成员。因此,上面代码中的 Test 类可以访问 Program 类的所有成员,包括其 private 成员。

相关文章