2016-06-02 8 views
3

プロパティが変更されるたびにリフレッシュ関数を呼び出す必要があるクラスがあります。だから私は自分自身がこれらの多くを書く見つける:C#プロパティセッターに関数を接続する最短の方法(テキストの量は最小)は何ですか?

private double _x; 
public double X 
    { 
     get { return _x; } 
     set 
     { 
      _x = value; 
      refresh(); 
     } 
    } 

リフレッシュ機能は常にプロパティごとに同じです。 これを行うための方法はありますか?

また、私はいつもprivate double _xdouble Xを介してアクセスするので、私は何とかrefresh()方法を統合することができればpublic double X { get; set}のようなものは、正常に動作します。

+0

リフレクションを使用すると、プロパティを動的に追加して各フィールドで行うことができますが、プロパティごとに1行追加するよりもはるかに短いとは限りません。 – Adwaenyth

+0

カスタム[リフレッシャー]注釈を書くことができますか? – ntohl

+0

コードスニペットに精通していますか?彼らは、繰り返しコードを書くのをはるかに簡単にすることができます。 –

答えて

2

純粋なC#方法は、反復コードをメソッドに移動することです。このようなあなたの場合

、何か:

void Set<T>(ref T field, T value) 
{ 
    field = value; 
    refresh(); 
} 

と、このような使用は:

private double _x; 
public double X { get { return _x; } set { Set(ref _x, value); } } 
1

はnugetパッケージをtheresのhttps://github.com/Fody/PropertyChanged

あなたは簡単のために同様のパッケージを作成することができますあなたのリフレッシュ機能を呼び出すfody。

関連する問題