1

.NET 2.0 を対象とする Visual Studio 2008 Windows プロジェクトなどでは使用できるのにObject Initializers、.NET 2.0 を対象とする ASP.NET プロジェクトでは使用できないのはなぜですか?

これが C# 3.0 の機能であることは理解していますが、そうではありません。.NET 2.0 プロジェクトでこれを使用できる理由はわかりません。

4

5 に答える 5

7

おそらく、2.0 フレームワークを対象とする ASP.Net のものは、その場でいくつかのコードをコンパイルする必要があるモードで実行されると想定しているためです。2.0 モードで実行されているため、その段階で 2.0 コンパイラが取得されます (したがって、3.0 コンパイラに依存するものはすべて失敗します)。

「通常の」プロジェクトから 2.0 コードベースをターゲットにする場合、コンパイルはその場で行われるため、3.0 コンパイラ機能に依存しても問題ありません。

于 2009-01-27T14:49:57.577 に答える
1

.NET 2.0 ランタイムをターゲットにすると、C# 2.0 コンパイラもターゲットになります。そのバージョンのコンパイラは 3.0 の機能を認識しません。

于 2009-01-27T14:50:14.473 に答える
1

これは、.NET 2.0 プロジェクトでの C# 3.0 機能の使用に関する既存の質問です。利用できる C# 3.0 の機能と利用できない機能、およびその使用方法について説明します。

特定の問題を解決するために、具体的な詳細情報が必要になります。

于 2009-01-27T14:50:25.300 に答える
0

C# の高度な機能と、それらが C# 1.0 から 3.0 までどのように進化したかについての最良の情報源は、Jon Skeet の本です。彼はかなり頻繁に SO に参加しており、追加の洞察を提供してくれるかもしれません。しかし、あなたは本当に本を持っているべきです。

于 2009-01-27T14:51:44.750 に答える
0

通常の ASP.NET Web サイトはオンザフライでコンパイルされます。つまり、Web サーバー上の仮想ディレクトリで使用できるコンパイラが使用されます。ASP.NET 2.0 に設定されている場合は、2.0 コンパイラが使用されます (.NET 2.0 を対象とする 3.0 コンパイラではありません)。Web サイトを Web アプリケーションに変換すると、3.0 をターゲットにして、3.0 の機能の一部を引き続き使用できると思います。試してみることをお勧めしますが、現時点では時間がありません。動作するかどうかお知らせください;-)

于 2009-01-27T15:08:46.230 に答える