Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- public abstract class Vehicle
- {
- public Vehicle(double quantity, double consumption, double capacity)
- {
- this.FuelQuantity = quantity;
- this.FuelConsumption = consumption;
- this.TankCapacity = capacity;
- }
- public double FuelQuantity { get; protected set; }
- protected double FuelConsumption { get; set; }
- protected double TankCapacity { get; set; }
- public double AircondMultiplier { get; protected set; }
- public double FuelMultiplier { get; protected set; }
- public string Drive(double distance, double aircondMultiplier)
- {
- double fuelNeeded = distance * (this.FuelConsumption + aircondMultiplier);
- if (fuelNeeded < this.FuelQuantity)
- {
- this.FuelQuantity -= fuelNeeded;
- return $"{this.GetType().Name} travelled {distance} km";
- }
- return $"{this.GetType().Name} needs refueling";
- }
- public void Refuel(double liters, double fuelMultiplier)
- {
- if (this.FuelQuantity + liters > this.TankCapacity)
- {
- throw new ArgumentException($"Cannot fit {liters} fuel in the tank");
- }
- this.FuelQuantity += liters * fuelMultiplier;
- }
- public override string ToString()
- {
- return $"{this.GetType().Name}: {this.FuelQuantity:f2}";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment