カスタムイベントを発生させて処理する必要があるプロジェクトに取り組んでいます...コードを少し単純化して、次のようなものを得ました:
class Car
{
public int Speed { get; set; }
public delegate void SpeedTooHigh(string message);
public event SpeedTooHigh OnSpeedToHigh;
public Car(int speed)
{
this.Speed = speed;
if (speed >= 100)
{
if (this.OnSpeedToHigh != null)
{
this.OnSpeedToHigh("Car has a too high speed !");
}
}
}
}
そして、私がこのクラスを使用しているメインクラス:
class Program
{
static void Main(string[] args)
{
Car car = new Car(120, "Red", "Renault");
car.OnSpeedToHigh += OnCarSpeedToHigh;
Console.WriteLine("Test events");
Console.ReadKey();
}
static void OnCarSpeedToHigh(string message)
{
Console.WriteLine(message);
}
}
この例を実行しているとき、Car クラスでは常に「OnSpeedToHigh」が null のようです。そして、メインクラスでこのクラスのインスタンスを作成し、「this.OnSpeedToHigh("Car has a too high speed!")」が呼び出されるように速度を 100 より大きく設定しているため、理由がわかりません。
これは、クラスをインスタンス化し、たとえば速度を 100 より大きく設定するために、イベントを発生させるのに十分ですか?
これについて教えてください。