.assembly 'goto' { } .assembly extern 'mscorlib' { .ver 1:0:5000:0 .publickeytoken = ( b7 7a 5c 56 19 34 e0 89 ) } .assembly extern 'system.drawing' { .ver 1:0:5000:0 .publickeytoken = ( b0 3f 5f 7f 11 d5 0a 3a ) } .class public 'A' extends [mscorlib]System.Object { .method hidebysig public static void 'Main'() { .entrypoint .locals init ([0]class [mscorlib]System.Collections.ArrayList 't0') newobj instance void [mscorlib]System.Collections.ArrayList::.ctor() stloc 0 // x .locals init ([1]string 't1') .locals init ([2]class [mscorlib]System.Collections.IEnumerator 't2') ldloc 0 // x callvirt instance class [mscorlib]System.Collections.IEnumerator [mscorlib]System.Collections.ArrayList::'GetEnumerator'() stloc 2 // t2 .try { br $2 $1: ldloc 2 // t2 callvirt instance object [mscorlib]System.Collections.IEnumerator::'get_Current'() castclass string stloc 1 // a ldloc 1 // a call void [mscorlib]System.Console::'WriteLine'(string) leave $6 $2: ldloc 2 // t2 callvirt instance bool [mscorlib]System.Collections.IEnumerator::'MoveNext'() brtrue $1 $3: leave $5 } finally { ldloc 2 // t2 .locals init ([3]class [mscorlib]System.IDisposable 't3') isinst class [mscorlib]System.IDisposable stloc 3 // t3 ldloc 3 // t3 brfalse $7 ldloc 3 // t3 callvirt instance void [mscorlib]System.IDisposable::'Dispose'() $7: endfinally } // end .try $5: $4: $6: ldstr "done" call void [mscorlib]System.Console::'WriteLine'(string) .locals init ([4]int32 't4') .locals init ([5]class [mscorlib]System.Collections.IEnumerator 't5') ldloc 0 // x callvirt instance class [mscorlib]System.Collections.IEnumerator [mscorlib]System.Collections.ArrayList::'GetEnumerator'() stloc 5 // t5 .try { br $9 $8: ldloc 5 // t5 callvirt instance object [mscorlib]System.Collections.IEnumerator::'get_Current'() unbox int32 ldind.i4 stloc 4 // a $9: ldloc 5 // t5 callvirt instance bool [mscorlib]System.Collections.IEnumerator::'MoveNext'() brtrue $8 $10: leave $12 } finally { ldloc 5 // t5 .locals init ([6]class [mscorlib]System.IDisposable 't6') isinst class [mscorlib]System.IDisposable stloc 6 // t6 ldloc 6 // t6 brfalse $13 ldloc 6 // t6 callvirt instance void [mscorlib]System.IDisposable::'Dispose'() $13: endfinally } // end .try $12: $11: .locals init ([7]value class [system.drawing]System.Drawing.Point[] 't7') ldc.i4 5 newarr value class [system.drawing]System.Drawing.Point stloc 7 // y .locals init ([8]value class [system.drawing]System.Drawing.Point 't8') .locals init ([9]int32 't9') .locals init ([10]value class [system.drawing]System.Drawing.Point[] 't10') ldloc 7 // y stloc 10 // t10 ldc.i4.0 stloc 9 // t9 br $17 $14: ldloc 10 // t10 ldloc 9 // t9 ldelema value class [system.drawing]System.Drawing.Point ldobj value class [system.drawing]System.Drawing.Point stloc 8 // a ldloca 8 // a call instance int32 [system.drawing]System.Drawing.Point::'get_X'() call void [mscorlib]System.Console::'WriteLine'(int32) $15: ldloc 9 // t9 ldc.i4.1 add stloc 9 // t9 $17: ldloc 9 // t9 ldloc 10 // t10 ldlen conv.i4 blt $14 $16: ret .maxstack 2 } // end of method A.Main .method hidebysig specialname rtspecialname public void .ctor() { ldarg.0 call instance void [mscorlib]System.Object::.ctor() ret .maxstack 1 } // end of constructor A.A } // end of class A