1 class C
2 {
M(object d, long s)3 	public int M (object d, long s)
4 	{
5 		return 1;
6 	}
7 
M(long s, object d)8 	public int M (long s, object d)
9 	{
10 		return 2;
11 	}
12 
M(dynamic d, dynamic s)13 	public int M (dynamic d, dynamic s)
14 	{
15 		return 3;
16 	}
17 
M2(object d)18 	public int M2 (object d)
19 	{
20 		return 1;
21 	}
22 
M2(byte s)23 	public int M2 (byte s)
24 	{
25 		return 2;
26 	}
27 }
28 
29 public class Test
30 {
Main()31 	public static int Main ()
32 	{
33 		dynamic d = new C ();
34 		byte s = 5;
35 		object o = 2;
36 		int v = d.M (s, o);
37 
38 		if (v != 2)
39 			return 1;
40 
41 		v = d.M2 (1 + 3);
42 		if (v != 2)
43 			return 2;
44 
45 		return 0;
46 	}
47 }
48