// (note, this is taken from `13.2.5 Interface member access') interface IInteger { void Add(int i); } interface IDouble { void Add(double d); } interface INumber: IInteger, IDouble {} class Number : INumber { void IDouble.Add (double d) { System.Console.WriteLine ("IDouble.Add (double d)"); } void IInteger.Add (int d) { System.Console.WriteLine ("IInteger.Add (int d)"); } public static int Main () { INumber n = new Number (); n.Add(1); n.Add(1.0); ((IInteger)n).Add(1); ((IDouble)n).Add(1); return 0; } }