为什么const成员语法的行为类似于类的静态成员

时间:2016-12-06 09:39:24

标签: c# static const

今天我试图声明一个静态变量QList,如下面的代码所示:

EmployeeMaxAge

当我尝试在我的主要方法namespace NewApplication { public class CommonConstants { public const int EmployeeMaxHeightInCm = 160; public static int EmployeeMaxAge = 50; //new static member } } 中使用它时,我可以突然看到intellisense也在intellisense下拉列表中显示CommonConstants.EmployeeMaxAge(没有静态修饰符)。所以我在代码中写了EmployeeMaxHeightInCm,看到它正在编译并成功运行。我一直都知道CommonConstants.EmployeeMaxHeightInCm语法只适用于类的静态成员,但同样的语法也适用于const成员。有人可以帮我理解C#语言的这种行为吗?

1 个答案:

答案 0 :(得分:2)

答案是:因为这就是C#标准定义常量字段的方式。

10.4常量 部分

开始
  

尽管常量被认为是静态成员,但常量声明既不需要也不允许使用静态修饰符。

     

...

     

使用简单名称(第7.6.2节)或成员访问(第7.6.4节)在表达式中获取常量的值。