3

C# 4.0 の公式言語仕様によると、インターフェイス メソッドの宣言は次のように定義されています。

interface-method-declaration: attributes? new? return-type identifier type-parameter-list ( formal-parameter-list? ) type-parameter-constraints-clauses? ;

どこ

type-parameter-list: < type-parameters >

私の質問は次のとおりです。type-parameter-list常にインターフェイスメソッド名に従う必要がありますか、それともスキップできますか? 仕様では、常に名前に従う必要があると書かれていますが、これは少し奇妙に思えます。

4

1 に答える 1

2

はい、仕様の正式な文法によれば、インターフェイス メソッドはジェネリックである必要があります。

明らかにこれは間違いです。type-parameter-list は、他のすべてのメソッド宣言生成と同様にオプションであると想定されています。仕様にもバグがある可能性があります:)

残念ながら、C# の実際の仕様は "csc.exe が行うことは何でも" です。詳しく調べてみると、文書化された動作とは何百もの大きな違いがあります。

于 2013-07-27T16:16:18.950 に答える