74 lines
2.9 KiB
C#
74 lines
2.9 KiB
C#
/// <summary>
|
||
/// Газонокосилка
|
||
/// </summary>
|
||
public class Lawnmower : ElectricTool
|
||
{
|
||
/// <summary>
|
||
/// Объем топлива
|
||
/// </summary>
|
||
private float _fuelCapacity;
|
||
/// <summary>
|
||
/// Текущий уровень топлива
|
||
/// </summary>
|
||
private float _fuelLevel;
|
||
|
||
/// <summary>
|
||
/// Объем топлива
|
||
/// </summary>
|
||
public float FuelCapacity
|
||
{
|
||
get => _fuelCapacity;
|
||
set
|
||
{
|
||
if (value <= 0)
|
||
throw new ArgumentException("Объем топлива не может быть меньше или равен нулю", nameof(FuelCapacity));
|
||
|
||
_fuelCapacity = value;
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// Текущий уровень топлива
|
||
/// </summary>
|
||
public float FuelLevel => _fuelLevel;
|
||
|
||
/// <summary>
|
||
/// Инициализирует новый экземпляр класса <see cref="Lawnmower"/> с указанным именем, материалом, весом, мощностью и объемом бензина
|
||
/// </summary>
|
||
/// <param name="parName">Имя электроинструмента</param>
|
||
/// <param name="parMaterial">Материал электроинструмента</param>
|
||
/// <param name="parWeight">Вес электроинструмента. Должен быть больше нуля</param>
|
||
/// <param name="parPower">Мощность электроинструмента. Должна быть больше нуля</param>
|
||
/// <param name="parFuelCapacity">Объем топлива. Должен быть больше нуля</param>
|
||
/// <exception cref="ArgumentException">Выбрасывается, когда вес меньше или равен нулю</exception>
|
||
/// <exception cref="ArgumentException">Выбрасывается, когда мощность равна нулю</exception>
|
||
/// <exception cref="ArgumentException">Выбрасывается, когда объем топлива равна нулю</exception>
|
||
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;
|
||
}
|
||
|
||
/// <summary>
|
||
/// Пополняет запас топлива до максимального уровня.
|
||
/// </summary>
|
||
public void Refuel()
|
||
{
|
||
_fuelLevel = _fuelCapacity;
|
||
}
|
||
|
||
/// <summary>
|
||
/// Клонирует газонокосилку
|
||
/// </summary>
|
||
/// <returns>Клоннированная газонокосилка</returns>
|
||
public override object Clone()
|
||
{
|
||
var lawnmower = new Lawnmower(Name, Material, Weight, Power, FuelCapacity)
|
||
{
|
||
_fuelLevel = FuelLevel
|
||
};
|
||
|
||
return lawnmower;
|
||
}
|
||
} |