/*
Mastering Visual C# .NET
by Jason Price, Mike Gunderloy
Publisher: Sybex;
ISBN: 0782129110
*/
/*
Example8_7.cs illustrates an explicit interface member
implementation
*/
using System;
// define the IDrivable interface
public interface IDrivable
{
void TurnLeft();
}
// define the ISteerable interface
public interface ISteerable
{
void TurnLeft();
}
// Car class implements the IMovable interface
class Car : IDrivable, ISteerable
{
// explicitly implement the TurnLeft() method of the IDrivable interface
void IDrivable.TurnLeft()
{
Console.WriteLine("IDrivable implementation of TurnLeft()");
}
// implement the TurnLeft() method of the ISteerable interface
public void TurnLeft()
{
Console.WriteLine("ISteerable implementation of TurnLeft()");
}
}
public class Example8_7
{
public static void Main()
{
// create a Car object
Car myCar = new Car();
// call myCar.TurnLeft()
Console.WriteLine("Calling myCar.TurnLeft()");
myCar.TurnLeft();
// cast myCar to IDrivable
IDrivable myDrivable = myCar as IDrivable;
Console.WriteLine("Calling myDrivable.TurnLeft()");
myDrivable.TurnLeft();
// cast myCar to ISteerable
ISteerable mySteerable = myCar as ISteerable;
Console.WriteLine("Calling mySteerable.TurnLeft()");
mySteerable.TurnLeft();
}
}
|