updating to the latest module.
[mono.git] / mcs / errors / cs0121-3.cs
1 // cs0121-3.cs: The call is ambigious between `IInteger.Add (int)' and `IDouble.Add (double)'
2 // line 28
3
4 // (note, this is taken from `13.2.5 Interface member access')
5 interface IInteger {
6         void Add(int i);
7 }
8
9 interface IDouble {
10         void Add(double d);
11 }
12
13 interface INumber: IInteger, IDouble {}
14
15 class Number : INumber {
16         void IDouble.Add (double d)
17         {
18                 System.Console.WriteLine ("IDouble.Add (double d)");
19         }
20         void IInteger.Add (int d)
21         {
22                 System.Console.WriteLine ("IInteger.Add (int d)");
23         }
24         
25         static void Main ()
26         {
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
32         }
33 }