///
/// Газонокосилка
///
public class Lawnmower : ElectricTool
{
///
/// Объем топлива
///
private float _fuelCapacity;
///
/// Текущий уровень топлива
///
private float _fuelLevel;
///
/// Объем топлива
///
public float FuelCapacity
{
get => _fuelCapacity;
set
{
if (value <= 0)
throw new ArgumentException("Объем топлива не может быть меньше или равен нулю", nameof(FuelCapacity));
_fuelCapacity = value;
}
}
///
/// Текущий уровень топлива
///
public float FuelLevel => _fuelLevel;
///
/// Инициализирует новый экземпляр класса с указанным именем, материалом, весом, мощностью и объемом бензина
///
/// Имя электроинструмента
/// Материал электроинструмента
/// Вес электроинструмента. Должен быть больше нуля
/// Мощность электроинструмента. Должна быть больше нуля
/// Объем топлива. Должен быть больше нуля
/// Выбрасывается, когда вес меньше или равен нулю
/// Выбрасывается, когда мощность равна нулю
/// Выбрасывается, когда объем топлива равна нулю
public Lawnmower(string parName, Material parMaterial, double parWeight, uint parPower, float parFuelCapacity) : base(parName, parMaterial, parWeight, parPower)
{
if (parFuelCapacity <= 0)
throw new ArgumentException("Объем топлива не может быть меньше или равен нулю", nameof(parFuelCapacity));
_fuelCapacity = parFuelCapacity;
}
///
/// Пополняет запас топлива до максимального уровня.
///
public void Refuel()
{
_fuelLevel = _fuelCapacity;
}
///
/// Клонирует газонокосилку
///
/// Клоннированная газонокосилка
public override object Clone()
{
var lawnmower = new Lawnmower(Name, Material, Weight, Power, FuelCapacity)
{
_fuelLevel = FuelLevel
};
return lawnmower;
}
}