1 using System; 2 3 class C 4 { D()5 public delegate void D (); 6 7 int[] chats; 8 int total; 9 Main()10 public static int Main () 11 { 12 new C ().Test (); 13 return 0; 14 } 15 16 object GdkWindow 17 { 18 get { return null; } 19 set { } 20 } 21 Invoke(D d)22 public static void Invoke (D d) 23 { 24 } 25 Test()26 void Test () 27 { 28 try { 29 if (total < 0) 30 return; 31 32 int x = 0; 33 34 Invoke (delegate { 35 try { 36 Invoke (delegate { 37 GdkWindow = null; 38 }); 39 40 total = x; 41 int[] chats = new int[] { 1, 2 }; 42 43 Invoke (delegate { 44 foreach (int chat in chats) { 45 total = chat; 46 } 47 }); 48 } finally { 49 Invoke (delegate { 50 if (GdkWindow != null) { 51 GdkWindow = null; 52 } 53 }); 54 } 55 }); 56 } catch { 57 int x = 9; 58 } 59 } 60 } 61