繁体   English   中英

C#中的幂等修饰符

[英]Idempotent modifiers in C#

我注意到如果我写了类似的东西:

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

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

但是,如果我写:

private readonly readonly int a;

编译器确实警告我重复readonly

那么这里发生了什么? 修饰语是否是幂等的?


csc版本1.0.0.50618

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

local-constant-declaration声明一个或多个局部常量。

本地常量声明
const 类型 常量声明符

常量声明者
常数声明
常量声明符 , 常量声明符

constant-declaratoridentifier = constant-expression

如您所见,该语法不允许const const const bool flag = true;

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM