2012-02-22 6 views
3

私は私のASP.NET WebアプリケーションのC#のソースファイルで自動実装プロパティの構文を使用しています:自動実装されたプロパティがASP.NET 2.0で動作するのはなぜですか?

public int IdUser { get; set; } 
... 
this.IdUser = 1; 

プロジェクトのターゲットフレームワークの.NET Framework 2.0です。 ASP.NET 2.0のみがインストールされたIISサーバー上でコンパイルされ、正常に動作しているようです。私はVisual Studio 2010を使って開発し、コンパイルします。

私はこの構文が.NET 3に付属していると理解しました。
私はVSのどこかで設定を忘れましたか? IIS/ASP.NET 2.0サーバーにWebサイトを展開する際に問題が生じることはありますか?

+1

自動的に実装されたものでは、バッキングフィールドが生成され、コンパイラによってプッシュされるので、コンストラクタなしで記述するクラスの場合と同様に、デフォルトのものがプッシュされます。 – V4Vendetta

答えて

6

自動実装されたプロパティは.NET 3.0で導入されましたが、2.0と下位互換性があります。 2.0フレームワークでコードを実行できるのはこのためです。基本的には文法的な砂糖だけであり、コンパイラは実際にあなたのためにフィールドを生成します。

1

@ Jakubは言ったように、それは下位互換性があります。たとえば、暗黙的に宣言された変数(var i = 1; //i is int)を使用することもできますが、C#3.0でのみ導入されました。

1

との互換性がありますのVisual Studio 2005 でコードをコンパイルすることができませんVisual StudioのWebサイトではなくWebアプリケーションまたはプリコンパイル済みのサイトを使用している場合は、.NET 2.0のみを持つサーバーで.NET 3.0/3.5の機能を実行できます。これは、サーバー上でコンパイルされているためです。前者はVisual Studioによってコンパイルされています。

関連する問題