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
}