С#
Реализовать класс машина. Название и кол-во бензина в баке.
В машине создать два события, событие успешного запуска машины и событие неуспешного запуска машины.
(OnSucceedLaunch, OnFailuredLaunch).
В машине создать функцию Запуск, которая будет проверять - если в баке бензина хватает для запуска (> 0), функция инвоуком вызывает событие успешного запуска машины.
Если при запуске в баке топлива нет, то функция запуска вызывает событие неуспешного запуска машины.
Car
public event CarDelegate OnSuccessLaunch
*main*
Car
car.OnSuccessLaunch += Foo;
car.Launch();
Ответы
Ответ:
using System;
// Делегат для событий успешного и неуспешного запуска машины
public delegate void CarDelegate();
// Класс Машина
public class Car
{
// Событие успешного запуска машины
public event CarDelegate OnSuccessLaunch;
// Событие неуспешного запуска машины
public event CarDelegate OnFailureLaunch;
// Название машины
public string Name { get; set; }
// Количество бензина в баке
private int fuelLevel;
// Конструктор класса
public Car(string name, int initialFuelLevel)
{
Name = name;
fuelLevel = initialFuelLevel;
}
// Функция для запуска машины
public void Launch()
{
if (fuelLevel > 0)
{
Console.WriteLine($"{Name} успешно запущена!");
// Вызов события успешного запуска машины
OnSuccessLaunch?.Invoke();
}
else
{
Console.WriteLine($"{Name} не удалось запустить. Нет топлива в баке.");
// Вызов события неуспешного запуска машины
OnFailureLaunch?.Invoke();
}
}
}
class Program
{
// Метод, который будет вызван при успешном запуске машины
static void Foo()
{
Console.WriteLine("Машина успешно запущена! (Обработчик события)");
}
static void Main()
{
// Создание объекта машины
Car car = new Car("Моя машина", 10);
// Подписка на событие успешного запуска
car.OnSuccessLaunch += Foo;
// Вызов функции для запуска машины
car.Launch();
// Отписка от события успешного запуска (если нужно)
// car.OnSuccessLaunch -= Foo;
}
}
Объяснение:
создается класс Car, который имеет два события: OnSuccessLaunch и OnFailureLaunch. При вызове метода Launch(), происходит проверка наличия топлива в баке. Если топливо есть, вызывается событие успешного запуска, иначе вызывается событие неуспешного запуска. В главной функции Main создается объект машины, подписывается обработчик события успешного запуска, и вызывается метод Launch().