これにより、将来イベントを変更するための拡張ポイントが提供されます。
クラスを定義するとしましょうCar
:
public class Car {
String Make { get; set; }
String Model { get; set; }
int Year { get; set; }
}
そしてイベントCarBuilt
:
public event Action<Car> CarBuilt;
それはいいです。しかし、後でイベントに車を作った人を含めたい場合はどうすればよいでしょうか? アクションを使用して、イベント シグネチャを変更するか、その情報をCar
クラスに追加する必要があります (実際には属していません)。
代わりにこのように定義すると:
public class CarBuiltEventArgs : EventArgs {
public Car TheCar { get; set; }
}
public event EventHandler<CarBuiltEventArgs> CarBuilt;
次に、BuiltBy プロパティを CarBuiltEventArgs クラスに追加すると、準備は完了です。
public class CarBuiltEventArgs : EventArgs {
public Car TheCar { get; set; }
public String BuiltBy { get; set; }
}