C# 访问修饰符

访问修饰符

现在,您已经非常熟悉我们的许多示例中出现的public关键字:

public string color;

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

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

修饰符 描述
public 所有类都可以访问该代码
private 代码只能在同一类中访问
protected 代码可以在同一类中访问,也可以在从该类继承的类中访问。您将在后面的章节中了解有关继承inheritance 的更多信息
internal 代码只能在它自己的程序集中访问,而不能从另一个程序集中访问。您将在后面的一章中了解更多

还有两种组合:内部保护protected internal和私有保护private protected

现在,让我们集中讨论公共public修饰符和私有private修饰符。


私有修饰符

如果使用私有private访问修饰符声明字段,则只能在同一类中访问该字段:

实例

class Car
{
  private string model;

  static void Main(string[] args)
  {
    Car Ford = new Car("Mustang");
    Console.WriteLine(Ford.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 访问修饰符声明字段,则所有类都可以访问该字段:

实例

class Car
{
  public string model = "Mustang";
}

class Program
{
  static void Main(string[] args)
  {
    Car myObj = new Car();
    Console.WriteLine(myObj.model);
  }
}

输出将是:

Mustang

运行实例 »


为什么选择访问修饰符?

控制类成员的可见性(每个单独类和类成员的安全级别)。

实现封装"Encapsulation"——即确保对用户隐藏敏感数据的过程。这是通过将字段声明为private来实现的。您将在下一章中了解更多。

注释: 默认情况下,如果不指定访问修饰符,则类的所有成员都是私有的private

实例

class Car
{
  string model;  // private
  string year;   // private
}