今天我试图声明一个静态变量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#语言的这种行为吗?
答案 0 :(得分:2)
答案是:因为这就是C#标准定义常量字段的方式。
从 10.4常量 部分
开始尽管常量被认为是静态成员,但常量声明既不需要也不允许使用静态修饰符。
...
使用简单名称(第7.6.2节)或成员访问(第7.6.4节)在表达式中获取常量的值。