簡體   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