C#中的幂等修饰符

本文关键字: | 更新日期: 2023-09-27 18:21:52

我注意到,如果我写这样的东西:

static void Main(string[] args)
{
    const const const bool flag = true;
}

编译器并没有警告我多个consts。所以这似乎是模仿C修饰符,因为它们是幂等的。

然而,如果我写:

private readonly readonly int a;

编译器确实警告我重复的readonly

这是怎么回事?修饰符是幂等的吗?


csc版本1.0.0.50618

C#中的幂等修饰符

这是编译器中的一个错误,至少在Roslyn 1.0.0.50618版本中是这样。来自C#5规范第8.5.2节:

局部常量声明声明一个或多个局部常量。

局部常量声明
 nbsp const类型常量声明符

常量声明符
 nbsp常量声明符
 nbsp常量声明符,

常量声明符: nbsp标识符=常量表达式

正如您所看到的,该语法不允许使用const const const bool flag = true;

我已经针对Roslyn提交了一个bug,以便修复它。

相关文章:
  • 没有找到相关文章