C#中的幂等修饰符
本文关键字: | 更新日期: 2023-09-27 18:21:52
我注意到,如果我写这样的东西:
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
这是编译器中的一个错误,至少在Roslyn 1.0.0.50618版本中是这样。来自C#5规范第8.5.2节:
局部常量声明声明一个或多个局部常量。
局部常量声明:
nbspconst
类型常量声明符常量声明符:
nbsp常量声明符
nbsp常量声明符,
常量声明符: nbsp标识符
=
常量表达式
正如您所看到的,该语法不允许使用const const const bool flag = true;
。
我已经针对Roslyn提交了一个bug,以便修复它。