C# 访问修饰符

访问修饰符

到现在为止,您已经对出现在我们许多实例中的 public 关键字相当熟悉了:

public string color;

public 关键字是一个访问修饰符 (Access Modifiers),用于设置类、字段、方法和属性的访问级别/可见性。

C# 具有以下访问修饰符:

修饰符 描述
public 代码对所有类可见
private 代码只在同一类内部可见
protected 代码在同一类内部或从该类继承的类中可见。请参阅:继承教程
internal 代码只在其自己的程序集中可见,但从其他程序集中不可见。

还有两个组合:protected internalprivate protected

现在,让我们关注 publicprivate 修饰符。

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)
}