2011-01-28 11 views
48

私はこれをしたい:C#のプロパティ:プライベートフィールドなしでカスタムセットプロパティを使用する方法?

public Name 
{ 
    get; 
    set 
    { 
     dosomething(); 
     ??? = value 
    } 
} 

は、自動生成されたプライベートなフィールドを使用することが可能ですか?

private string name; 
public string Name 
{ 
    get 
    { 
     return name; 
    } 
    set 
    { 
     dosomething(); 
     name = value 
    } 
} 
+1

:http://stackoverflow.com/questions/1277018/c-3-0-automatic-プロパティ - 何の名前になるのだろう - プライベート変数の名前を作成 –

答えて

60

getterまたはsetterのいずれかでカスタムを実行した後は、自動プロパティを使用できなくなります。

13

これは不可能です。
それともそれは私がそれをこのように実装することが必要とされます。自動実装されたプロパティまたはカスタムコード。

3

シナリオに合わせて完全に実装する必要があります。 getsetは、どちらも自動実装されているか、完全に実装されている必要があります。

14

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

このSO質問では、この上の良い議論がたくさんあります
public string Name { get; private set; } 
public void SetName(string value) 
{ 
    DoSomething(); 
    this.Name = value; 
} 
+4

+1私の心にこの答えは受け入れられた答えを叱責する。それは自動プロパティを使用しています。明示的にsetterをprivateに設定します。これは、セッターメソッドの背後にある可能性が高いことをエンドユーザーまたは開発者に知らせるため、良いことです。 – ooXei1sh

関連する問題