4

.Net 2.0 Frameworkを対象とするアプリケーションで使用できるC#3.0言語機能は何ですか?

PS:ラムダ式やvarキーワードのようなものはほとんど知りません

4

2 に答える 2

5

このトピックに関する記事があります。

簡単に言えば:

サポート:

  • 自動的に実装されたプロパティ、暗黙的に型指定されたローカル変数と配列、オブジェクトとコレクションの初期化子、匿名型、部分メソッド、デリゲート型に変換されたラムダ式。

部分的にサポート:

  • 拡張メソッド(属性が必要)とクエリ式(便利な場合はLINQBridgeなどが必要)

サポートされていません:

  • ラムダが式ツリーに変換されました

実際、 Monoのの実装を利用して、式ツリーへの変換可能であると聞いていますSystem.Core。私はまだ試していません...私はそうすることを意味し続けます(そしてページを更新します)。

于 2009-09-10T10:31:20.867 に答える
4

こちらをご覧ください:

.Net 2.0アプリケーションでのC#3.0(.Net 3.5)構文の使用

.NET 2.0 Frameworkを対象とし、C#3.0を使用する場合に実行できることと実行できないことを完全に説明します。

要約すれば:

拡張メソッドは一種の作業ですが、機能するには「System.Runtime.CompilerServices.ExtensionAttribute」が必要であり、このタイプはSystem.Core DLL(厳密には.NET 2.0フレームワークの一部ではありません)内にあります。

クエリ構文は、いわば「そのまま」使用することはできませんが、サードパーティのDLL(LINQBridgeなど)を使用する場合は使用できます。このDLLは、.NET2.0フレームワークを対象とするときにLINQを実行するために必要な「欠落している」タイプの多くを効果的に再実装します。また、拡張メソッドが機能するために必要な「ExtensionAttribute」タイプを実装しているため、プロジェクトからLINQBridge DLLを追加/参照するだけで、LINQ、クエリ構文/式、および拡張メソッドが有効になります。

于 2009-09-10T10:46:50.277 に答える