Merge pull request #5714 from alexischr/update_bockbuild
[mono.git] / mcs / tests / dtest-005.cs
1 using System;
2 using System.Dynamic;
3
4 public class MyObject : DynamicObject
5 {
6         public static int Get, Invoke;
7
8         public override bool TryGetMember (GetMemberBinder binder, out object result)
9         {
10                 Console.WriteLine ("Get");
11                 Get++;
12                 result = null;
13                 return true;
14         }
15
16         public override bool TryInvokeMember (InvokeMemberBinder binder, object[] args, out object result)
17         {
18                 Console.WriteLine ("Invoke");
19                 Invoke++;
20                 result = null;
21                 return true;
22         }
23 }
24
25 public class Tests
26 {
27         public static int Main ()
28         {
29                 dynamic d = new MyObject ();
30
31                 var g = d.GetMe;
32                 if (MyObject.Get != 1 && MyObject.Invoke != 0)
33                         return 1;
34
35                 d.printf ("Hello, World!");
36                 if (MyObject.Get != 1 && MyObject.Invoke != 1)
37                         return 2;
38
39                 Console.WriteLine ("ok");
40                 return 0;
41         }
42 }