• Предмет: Информатика
  • Автор: Kukuwka0Ha0DepeBe
  • Вопрос задан 1 год назад

С#
Реализовать класс машина. Название и кол-во бензина в баке.

В машине создать два события, событие успешного запуска машины и событие неуспешного запуска машины.
(OnSucceedLaunch, OnFailuredLaunch).

В машине создать функцию Запуск, которая будет проверять - если в баке бензина хватает для запуска (> 0), функция инвоуком вызывает событие успешного запуска машины.

Если при запуске в баке топлива нет, то функция запуска вызывает событие неуспешного запуска машины.

Car
public event CarDelegate OnSuccessLaunch


*main*
Car
car.OnSuccessLaunch += Foo;
car.Launch();

Ответы

Ответ дал: ggig77895
0

Ответ:

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().

Похожие вопросы