0

C# で次のようなことを行う方法はありますか。

public class Class2 {
 public string PropertyName1 { get 
   {
         return this; //i mean "PropertyName1"
   }
   set {
       this = value;
       DoAdditionalFunction();
   }
}

「セット」で追加の関数を呼び出す必要があるため、次のような追加のプライベート フィールドが必要です。

private string _propertyName1;
 public string PropertyName1 { get 
   {
         return _propertyName1;
   }
   set {
       _propertyName1= value;
       DoAdditionalFunction();
   }

_propertyName1 のような追加のプロパティを使用したくありません。これを達成する方法またはベストプラクティスはありますか?

4

1 に答える 1

5

いいえ -最も些細な「フィールドを設定し、フィールド値を返す」以外の動作が必要な場合は、「完全な」プロパティを記述する必要があります。自動的に実装されるプロパティは、単純なプロパティの省略形にすぎません。

オブジェクトの実際の内容に関して、実際には「余分な」プライベートフィールドを持っていないことに注意してください-それは、コンパイラに自動的に実行させるのではなく、明示的にプライベートフィールドを宣言しているだけです.実装されたプロパティ。

(最初のプロパティが何をしようとしているのかは明確ではありません-クラスでの設定は無効であり、文字列の変換がない限り、文字列型のプロパティからthis戻ることはできません...)this

于 2012-04-17T20:12:09.337 に答える