EventHandlerとEventArgsについて調べたのでそれのメモ。
using System;
public class EventTest
{
// イベントに何をするかを登録する。
private void Start()
{
var sample = new EventSample();
sample.HogeHappend += DoSomething;
}
// 何をするかの中身
private void DoSomething(object sender, HogeEventArgs e)
{
Console.Write(e.Text);
Console.Write(e.Num);
}
}
// イベントを着火する側のクラス。
public class EventSample
{
public void DoSomething()
{
// 引数を用意して着火();
var e = new HogeEventArgs();
OnEventHappend(e);
}
private void OnEventHappend(HogeEventArgs e)
{
// もしイベントがあれば実行。
HogeHappend?.Invoke(this, e);
}
public event EventHandler<HogeEventArgs> HogeHappend;
}
// イベントの引数に持たせる情報。
public class HogeEventArgs : EventArgs
{
public string Text;
public int Num;
}