我注意到如果我写下如下的东西:
static void Main(string[] args)
{
const const const bool flag = true;
}
编译器不会警告我有多个const
s。所以这似乎模仿C修饰符,因为它们是幂等的。
但是,如果我写:
private readonly readonly int a;
编译器会警告我重复的readonly
。
那么这里发生了什么?修饰符是幂等还是不?
csc版本1.0.0.50618
发布于 2018-04-19 15:19:13
这是编译器中的一个错误 - 至少在Roslyn版本1.0.0.50618中。从C#5规范的第8.5.2节:
一个局部常数声明声明一个或多个局部常量。 本地常量声明:
const
类型 常量声明符 常量声明符: 常量声明符 常量声明符,
常量声明符 常量声明符 : 标识符=
常量表达式
正如你所看到的,那个语法不允许const const const bool flag = true;
。
https://stackoverflow.com/questions/-100008199
复制相似问题