0

Visual Studio (C#) に ECMA-334 標準に従ってソースをコンパイルさせるにはどうすればよいですか?

たとえば、以下のコードは ECMA-334 標準では無効です。

foreach (var item in custQuery)
{
    Console.WriteLine("Name={0}, Phone={1}", item.Name, item.Phone);
}

varは ECMA-334 標準のキーワードではないためです。これらの状況でVSに警告してもらいたいです。

4

2 に答える 2

5

「言語バージョン」オプション (コマンドラインで langversion とも呼ばれます) を使用できます。詳細オプションの下のビルドタブにあります。この場合、ISO-2 を選択します。

これは下位互換モードではないことに注意してください。指定されたバージョンよりも新しいバージョンで利用可能になった機能を使用できないようにするだけです。

Eric Lippert がlangversion オプションの使用法と目的について詳しく説明しています。

完全な下位互換性モードではないことに注意するには、記事から次の例を参照してください。

class C
{
    public static bool operator < (C c1, C c2) { return true; }
    public static bool operator > (C c1, C c2) { return true; }
    public static bool operator < (bool b1, C c2) { return true; }
    public static bool operator > (bool b1, C c2) { return true; }

    static C H = new C();
    static C I = new C();
    static C J = new C();
    static void G(bool b) { }
    static void Main()
    {
        G ( H < I > ( J ) );
    }
}

langversion を C# 1.0 (ISO-1) に設定すると、ジェネリックの使用が禁止されますが、そのバージョンのコンパイラでは合法でした。

于 2015-05-28T22:54:00.090 に答える
3

Visual Studio および .NET Framework に含まれるコンパイラは、最新 (リリース時点) の C# 言語バージョン以外に準拠するようには設計されていません。>C#-2.0 (ECMA-334) 機能の使用を診断するオプションはありますが、プロジェクト オプションの C# 言語レベル設定を通じて、それ以降に行われた言語の重大な変更には影響しません。

The C# 2.0 language is what's supported by Visual Studio 2005. 無料で入手できる Express バージョンをインストールできます。

于 2015-05-28T22:52:19.063 に答える