EventHandler與Action的事件驅動
直接看程式碼
使用EventHandler是比較正規的作法
{
public event EventHandler<NameChangedEventArgs> NameChanged;
private event Action<string> _NameActionChanged;
public event Action<string> NameActionChanged
{
add { _NameActionChanged += value; }
remove { _NameActionChanged -= value; }
}
static void Main(string[] args)
{
Program p = new Program();
//使用EventHandler
p.NameChanged += new EventHandler<NameChangedEventArgs>(p_NameChanged);
p.NameChanged(null, new NameChangedEventArgs() { name = "dyco" });
//使用Action
p.NameActionChanged += new Action<string>(p_NameActionChanged);
p._NameActionChanged("dyco");
}
static void p_NameActionChanged(string name)
{
Console.WriteLine(name);
Console.Read();
}
static void p_NameChanged(object sender, NameChangedEventArgs e)
{
Console.WriteLine(e.name);
Console.Read();
}
public class NameChangedEventArgs : EventArgs
{
public string name { get; set; }
}
}