C# 访问修饰符
访问修饰符
到现在为止,您已经对出现在我们许多实例中的 public
关键字相当熟悉了:
public string color;
public
关键字是一个访问修饰符 (Access Modifiers),用于设置类、字段、方法和属性的访问级别/可见性。
C# 具有以下访问修饰符:
修饰符 | 描述 |
---|---|
public |
代码对所有类可见 |
private |
代码只在同一类内部可见 |
protected |
代码在同一类内部或从该类继承的类中可见。请参阅:继承教程。 |
internal |
代码只在其自己的程序集中可见,但从其他程序集中不可见。 |
还有两个组合:protected internal
和 private protected
。
现在,让我们关注 public
和 private
修饰符。
Private 修饰符
如果您使用 private
访问修饰符声明一个字段,那么它只能在同一类内部被访问:
实例
class Car { private string model = "Mustang"; static void Main(string[] args) { Car myObj = new Car(); Console.WriteLine(myObj.model); } }
输出将是:
Mustang
如果您尝试在类的外部访问它,将会出现错误:
实例
class Car { private string model = "Mustang"; } class Program { static void Main(string[] args) { Car myObj = new Car(); Console.WriteLine(myObj.model); } }
输出将是:
'Car.model' is inaccessible due to its protection level The field 'Car.model' is assigned but its value is never used
Public 修饰符
如果您使用 public
访问修饰符声明一个字段,那么它对所有类都是可见的:
实例
class Car { public string model = "Mustang"; } class Program { static void Main(string[] args) { Car myObj = new Car(); Console.WriteLine(myObj.model); } }
输出将是:
Mustang
为什么使用访问修饰符?
为了控制类成员的可见性(每个单独类和类成员的安全级别)。
为了实现封装——这是确保“敏感”数据对用户隐藏的过程。这是通过将字段声明为 private
来实现的。您将在下一章中了解更多关于此内容的信息。
注意:如果您不指定访问修饰符,则类的所有成员默认都是私有的 (private
):
实例
class Car { string model; // 私有 (private) string year; // 私有 (private) }