本主题描述“字段”,它是包含在类或结构中的对象或值。字段使类和结构可以封装数据。
为了简单起见,这些示例使用 public 字段,但是不建议这样做。字段通常应为 private。外部类应当通过方法、属性或索引器来间接访问字段。有关更多信息,请参见方法、属性和索引器。
字段
字段存储类要满足其设计所需要的数据。例如,表示日历日期的类可能有三个整数字段:一个表示月份,一个表示日期,还有一个表示年份。在类块中声明字段的方式如下:指定字段的访问级别,然后指定字段的类型,最后指定字段的名称。例如:
C# | ![]() |
---|---|
public class CalendarDate { public int month; public int day; public int year; } |
访问对象中的字段是通过在对象名称后面依次添加一个句点和该字段的名称来实现的,具体形式为 objectname.fieldname
。例如:
C# | ![]() |
---|---|
CalendarDate birthday = new CalendarDate(); birthday.month = 7; |
声明字段时可以使用赋值运算符为字段指定一个初始值。例如,若要自动将 7
赋给 month
字段,需要按如下方式声明 month
:
C# | ![]() |
---|---|
public class CalendarDateWithInitialization { public int month = 7; //... } |
字段恰好在调用对象实例的构造函数之前初始化,所以,如果构造函数为字段分配了值,则它将改写字段声明期间给定的任何值。有关更多信息,请参见使用构造函数。
![]() |
---|
字段初始值设定项不能引用其他实例字段。 |
字段可标记为 public、private、protected、internal 或 protected internal。这些访问修饰符定义类的使用者访问字段的方式。有关更多信息,请参见访问修饰符。
可以选择将字段声明为 static。这使得调用方在任何时候都能使用字段,即使类没有任何实例。有关更多信息,请参见静态类和静态类成员。
可以将字段声明为 readonly。只读字段只能在初始化期间或在构造函数中赋值。staticreadonly 字段非常类似于常数,只不过 C# 编译器不能在编译时访问静态只读字段的值,而只能在运行时访问。有关更多信息,请参见常量。
C# 语言规范
有关更多信息,请参见 C# 语言规范中的以下各章节:
-
1.6.4 字段
-
10.4 字段
请参见
