32

C# 4.0 の新しいオプション パラメーター機能を使用するライブラリを作成しようとしていますが、フレームワークの 3.5 バージョンをターゲットにしたいと考えています。これは可能ですか?

オプションのパラメーターは、拡張メソッドと同じようにシンタックス シュガーですか?

4

7 に答える 7

26

VS2010 RC を使用して、C# でオプションのパラメーターを使用する .NET 3.5 アプリケーションを作成できました。

そうです、それはすべてシンタックスシュガーに関するものです。

于 2010-03-01T09:38:29.447 に答える
13

VS 2010 は、.NET 3.5 ソリューションの C# でオプションのパラメーターをサポートしています。ただし、1 つの注意点は、コマンドライン コンパイラがエラーを報告することです。

そのため、自動ビルドを実行している場合 (NANT またはコマンド ライン コンパイラを使用するその他のものを使用)、ビルドは失敗します。

于 2010-06-04T06:18:51.093 に答える
5

Jon Skeet のように、「機能 'optional parameter' は 3.0 C# 言語仕様の一部ではないため、使用できません」というメッセージが表示されました。ただし、Visual Studio の RTM バージョンでは、[プロジェクト プロパティ] -> [ビルド] -> [詳細設定] で言語バージョンを「デフォルト」に選択できます。それは私のためにそれを働かせました。

于 2010-07-12T14:45:10.773 に答える
3

アセンブリがv4(fe VS2010)の開発環境内でビルドされている限り、以前のバージョンのターゲットフレームワークでオプションの名前付きパラメーターを使用できます。ただし、この場合、ターゲットフレームワークのコンパイラが使用されるため、実行時のコンパイルまたはWebサイトの公開に注意する必要があります。また、古いフレームワークのコンパイラは、オプションの名前付きパラメータの構文を理解していないため、コンパイラエラーが発生します。

于 2011-04-21T09:34:08.083 に答える
3

プロジェクトのプロパティに移動 -> [ビルド] タブ -> [詳細設定] ボタンをクリック -> 言語バージョンを「デフォルト」に設定 -> 保存 -> 満足してください ;)

于 2011-11-30T11:20:57.683 に答える
2

ここで確認するために VS2010 をインストールしていませんが、これは純粋に言語機能であるため、対象となるフレームワークに関係なく使用できるはずです。

編集: このリンク(およびその他のいくつか) を見ると、オプションのパラメーターは、il の [opt] 属性を使用してメソッド引数にコンパイルされるようです。このパラメーターが以前のバージョンの clr に存在するかどうかはわかりませんが、存在すると思います。

于 2009-07-31T04:27:07.183 に答える
0

.NET 3.5 でオプションのパラメーターを使用する場合、VB.NET にはオプションのパラメーターがあります。

于 2009-07-31T04:29:33.217 に答える