예제 #1
0
    static void Main()
    {
        IMotorcycle motorBike = new Motorcycle();

        //That is expected, as IMotorcycle can Accelerate.
        motorBike.Accelerate();
        IBike newBike = new ElectricBike();

        //That too is expected, as IBike can Pedal.
        newBike.Pedal();
        //Now that´s something new, as IBike cannot Accelerate,
        //but the the ElectricBike adapter can, as it implements both interfaces.
        (newBike as IMotorcycle).Accelerate();
        Console.Read();
    }
 protected void AccelerateBtn_Click(object sender, EventArgs e)
 {
     if (currentlySelectedVehicle is Car)
     {
         if (currentlySelectedCar.Fuel == 0)
         {
             errorLabel.Text = "Not Enough Fuel - Stoping Engine";
             currentlySelectedCar.StopEngine();
         }
         else if (currentlySelectedCar.Fuel > 1 && currentlySelectedCar.IsEngineRunning == true)
         {
             currentlySelectedCar.Accelerate();
         }
         else
         {
             errorLabel.Text = "Can't Accelerate - Check Engine";
         }
     }
     else if (currentlySelectedVehicle is Motorcycle)
     {
         if (currentlySelectMotorcycle.Fuel == 0)
         {
             errorLabel.Text = "Not Enough Fuel - Stoping Engine";
             currentlySelectMotorcycle.RetractKickStand();
             currentlySelectMotorcycle.StopEngine();
         }
         else if (currentlySelectMotorcycle.Fuel > 2 && currentlySelectMotorcycle.IsEngineRunning == true)
         {
             currentlySelectMotorcycle.Accelerate();
         }
         else
         {
             errorLabel.Text = "Can't Accelerate - Check Engine or KickStand";
         }
     }
     updateText();
 }