1 // cs0121-3.cs: The call is ambigious between `IInteger.Add (int)' and `IDouble.Add (double)'
4 // (note, this is taken from `13.2.5 Interface member access')
13 interface INumber: IInteger, IDouble {}
15 class Number : INumber {
16 void IDouble.Add (double d)
18 System.Console.WriteLine ("IDouble.Add (double d)");
20 void IInteger.Add (int d)
22 System.Console.WriteLine ("IInteger.Add (int d)");
27 INumber n = new Number ();
28 n.Add(1); // Error, both Add methods are applicable
29 n.Add(1.0); // Ok, only IDouble.Add is applicable
30 ((IInteger)n).Add(1); // Ok, only IInteger.Add is a candidate
31 ((IDouble)n).Add(1); // Ok, only IDouble.Add is a candidate