C#访问修饰符的用法
C# 中定义类的成员时,用到了 public、private 等关键字,这些关键字就称作访问修饰符。
C# 中的访问修饰符主要包括 private、protected、internal、protected internal 和 public。这些访问修饰符控制着对类和类的成员变量、成员方法的访问。
下表所示为访问修饰符及其说明。
这里需要注意的是,在定义类时,只能使用 public 或者 internal,这取决于是否希望在包含类的程序集外部访问它。
例如,下面的类定义是合法的:
但是,可以使用这些修饰符定义嵌套的内部类(即包含在其他类中的类),因为在这种情况下,类也具有成员的状态。例如,下面的代码是合法的:
C# 中的访问修饰符主要包括 private、protected、internal、protected internal 和 public。这些访问修饰符控制着对类和类的成员变量、成员方法的访问。
下表所示为访问修饰符及其说明。
访问修饰符 | 应用于 | 访问范围 |
---|---|---|
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 成员。