public class TestEventHandle : MonoBehaviour
{
private void Start()
{
Consumer cr= new Consumer("Test");
CarDealer carDealer = new CarDealer();
carDealer.NewCarInfo += cr.NewCarIsHere;
carDealer.NewCar("what are you doing???");
}
}
public class CarInfoEventArgs : EventArgs
{
public CarInfoEventArgs(string car)
{
this.Car = car;
}
public string Car { get; private set; }
}
/*
该类提供了 EventHandler<CarInfoEventArgs> 类型的 NewCarInfo 事件,作为约定
事件一般使用两个带参数的方法,其中第一个参数是一个对象,包含事件发送者,第二个参数提供了事件的相关信息
第二个参数随着不同的事件类型而不同
*/
public class CarDealer
{
public event EventHandler<CarInfoEventArgs> NewCarInfo;
public void NewCar(string car)
{
if (NewCarInfo != null)
{
NewCarInfo(this,new CarInfoEventArgs(car));
}
}
}
public class Consumer
{
private string m_Name;
public Consumer(string name)
{
this.m_Name = name;
}
public void NewCarIsHere(object sender,CarInfoEventArgs e)
{
Type type = sender.GetType();
Debug.Log(string.Format("{0}:car {1} is new",m_Name,e.Car));
}
}