2009-07-22 2 views
2

私はこれは自動プロパティの正しい構文ですか?

それは本当にOK

public string LocaleName 
    { 
     get; 
     set; 
    } 

インナーを必要としない、.NET v2の後にこのような特性を設定することです...時々言語の変化に追いつくことがあまりにも長い間そのハードのためにプログラミングされてきましたフィールド?最近、コンパイラがこれを世話しているようですね?

+0

インストールしたC#のバージョンを確認するために質問を変更することがあります。 – Kredns

+0

が適切であり、必要に応じてそれぞれのアクセシビリティを制限することができます。パブリック文字列LocaleNam {get;プライベートセット;} –

答えて

10

はい、これは、それは限り、あなたは値が正しい方法を設定されているかどうかを確認するために、任意のチェックを行う必要はありませんとして大丈夫ですC#3.0

+0

私はC#v3でプログラミングしていますが、.net v2フレームワークを使用していますか? –

+1

@JL、はい、特定のフレームワークバージョンを必要としない* C#*機能です。 :) –

+2

これは、Visual Studio 2008のコンパイラ機能の詳細です。あなたがVS2005を.NET 3.0拡張機能で使用している場合は、この機能は使用できません。 –

1

はい、これは'auto implemented properties'と呼ばれます。コンパイラはあなたのプロパティのバッキングフィールドを作成します。

「自動実装プロパティ」は「C#compiler trick」なので、コードをコンパイルするためにC#3.0コンパイラを使用している限り、.NET Framework 2.0をターゲットとして使用できます。

0

はい、これはautomatic propertiesと呼ばれ、バックグラウンドフィールドをバックグラウンドで生成します。

0

はい。 C#3.0以降では、自動実装されたプロパティは、プロパティアクセサーで追加のロジックが不要な場合に、プロパティ宣言をより簡潔にします。クライアントコードでオブジェクトを作成することもできます。次の例のようにプロパティを宣言すると、コンパイラーはプライベートな匿名のバッキングフィールドを作成し、プロパティのgetおよびsetアクセサを使用してアクセスできます。あなたのパブリックアクセサが、民間のセッターを与える

public string MyString 
{ 
    get; 
    private set; 
} 

:だけ知っているので

3

は、あなたも、このような何かを行うことができます。

関連する問題