2


0

なぜ私はC#のクラス宣言の最後にセミコロンを入れないでください

C#クラス宣言で

class thing
{
    ...
}

この質問は少しばかげているかもしれませんが、クラス宣言の最後にセミコロンが含まれていないのはなぜですか、c plus plusとはまったく異なります。 -クラス宣言の終わりにセミコロンを置く[ここ]

4 Answer


7


それはhttp://www.microsoft.com/downloads/en/details.aspx?FamilyID=dfbf523c-f98c-4804-afbd-459e846b268e&displaylang=en [言語仕様]にあるからです。

C#は、C ++の互換性を念頭に置いて設計されたものではないことに注意してください。 言語設計者は、終了セミコロンは不要であると単純に決定しました。


3


http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-334.pdf [言語仕様](263ページ)にはオプションであると記載されているためです。


2


ブロック宣言の後にセミコロンを使用すると、アプリケーションは引き続き正常にコンパイルされますが、余分なセミコロンがあるという警告が表示されます。 C#は、デフォルトではブロックがセミコロンで終了することを期待していません。

public class MyClass
{
    public void MyMethod()
    {
        // Arbitrary block
        {
        }; // Semicolon here is fine but not required
    }
}; // Semicolon here is also fine but not required


2


必要に応じて、クラス宣言の最後にセミコロンを配置できますが、必須ではありません。 おそらくC ++とのスタイルの互換性を維持するために、設計によりオプションです。