すべてがdelegateが関数ポインタであることを知っています。だから私たちがイベントで作業するときに代理人を宣言しますが、私はイベントの作業の際にデリゲートを宣言しなければならない状況を知りたいのですがpublic delegate void OnButtonClickDelegate();
C#イベントを扱うときに明示的なデリゲート宣言が必要な場合は、
ここで私は組み込みデリゲートで使うことができるコードサンプルを参照しています代理人を明示的に宣言する代わりにEventHandler
イベントでの作業時に構築されたデリゲートでEventHandler
は、我々は必要明示的にデリゲートを宣言しないように私の目的を解決するよう
public class ArgsSpecial : EventArgs
{
public ArgsSpecial (string val)
{
Operation=val;
}
public string Operation {get; set;}
}
public class Animal
{
// Empty delegate. In this way you are sure that value is always != null
// because no one outside of the class can change it.
public event EventHandler<ArgsSpecial> Run = delegate{}
public void RaiseEvent()
{
Run(this, new ArgsSpecial("Run faster"));
}
}
Animale animal= new Animal();
animal.Run += (sender, e) => Console.WriteLine("I'm running. My value is {0}", e.Operation);
animal.RaiseEvent();
。代理人を明示的に宣言しなければならない場所を教えてください。EventHandler
は私たちの目的を解決できないかもしれません。ありがとう
と表現することができます。これは、カスタム代理人を使用する必要がある場合の表示コードです。ありがとう – Mou