Я просто работаю над проектом, в котором мне нужно поднимать и обрабатывать пользовательские события ... я просто упростил немного Кодекса и получил что-то вроде этого:C# событие является пустым
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);
}
}
Когда я бегу этот пример, кажется, что все время «OnSpeedToHigh» является недействительным в классе автомобилей. И я не понимаю, почему, поскольку я создаю экземпляр этого класса в основном классе и устанавливаю скорость, чтобы она была больше 100, так что «this.OnSpeedToHigh (« Автомобиль имеет слишком высокую скорость! »)».
Достаточно ли этого для поднятия события, чтобы создать экземпляр класса и установить скорость, например, 100?
Пожалуйста, дайте мне знать об этом.
Хороший пример, почему события не заменяют исключения. –