1

私は自分自身を CSharp に慣れていないと考えています。コードの場合、この作品に遭遇しましたが、それが何をするのか理解できません。

EventHandler がデリゲートと等しい場所を見たことがありませんか? それは何をしますか?もちろん、以下は完全なコードの抜粋です。イベント ハンドラーをデリゲートと同一視するという一般的な概念を誰かが理解するのに十分であることを願っているからです。ありがとう。

public class xyz : ViewModelBase
{
   protected EventHandler modelChanged = null;
   public xyz (  int a, int b)
   {
       this.modelChanged =
            delegate
            {
                // check for changes.
                if (this.ChangesExist == false)
                {
                    // set the flag
                    this.ChangesExist = true;

                    // append the title.
                    currentTitle += "*";

                    _changeTitle(currentTitle);
                }

            };
    }
}
4

4 に答える 4

1

EventHandler は、Microsoft によって宣言されたデリゲートの一種にすぎません。そのため、他のデリゲートとして使用できます。クラスでそのインスタンスを持ち、コードのように匿名デリゲートを使用して実装を割り当てることができます。MS によって意図された特別な目的があるため、このように使用することはベスト プラクティスではありません。

于 2013-09-06T19:01:27.463 に答える