3

.Net 2.0 Web サイトで Linqbridge を使用できた人はいますか? 通常の .Net 2.0 コンソールで問題なく使用できますが、Web サイトでメソッドを使用すると、

Feature 'extension method' cannot be used because it is not part of the ISO-2 C# language specification
4

2 に答える 2

2

エラーメッセージはかなり明確だと思います。拡張メソッドは 2.0 ではサポートされていません。2.0 で拡張メソッドを使用する場合は、 を削除して変更し、this明示的に呼び出す必要があります。

あなたが持っていた場合:

public static class ExtensionMethods {
    public static bool IsOdd(this int x) {
        return x % 2 != 0;
    }
}

次にExtensionMethods、次のようなコードnumber.IsOdd()はコンパイルされません。

2.0 で動作させるにthisは、IsOddメソッド シグネチャの を削除して as を呼び出す必要があります。ExtensionMethods.IsOdd(number)

私の記憶が正しければ、それが LinqBridge の作成者が使用したアプローチです。

それが役立つことを願っています。

于 2011-03-17T05:31:42.977 に答える
0

.NET と C# のバージョンを混同している可能性があります。LINQBridge は .NET 2.0 をサポートしていますが、拡張メソッドまたは LINQ 構文シュガーを使用してコードをコンパイルするには、C# 3.0 以降 (VS2008 以降) が必要です。コンパイルが完了すると、アセンブリは .NET 2.0 ランタイムで問題なく実行されます。それが LINQBridge の利点です。

于 2011-03-18T03:30:36.883 に答える