.assembly 'indexer' { } .assembly extern 'mscorlib' { .ver 1:0:5000:0 .publickeytoken = ( b7 7a 5c 56 19 34 e0 89 ) } .class 'T' extends [mscorlib]System.Object { .field private int32 'x' .property instance int32 Item(int32,class 'T') { .get instance int32 'T'::'get_Item'(int32,class 'T') .set instance void 'T'::'set_Item'(int32,class 'T',int32) } // end of property Item .method hidebysig specialname public instance int32 'get_Item'(int32 'a',class 'T' 'b') { .locals init ([0]int32 't0') ldarg 1 // a ldarg.0 ldfld int32 'T'::'x' add stloc 0 // t0 br $1 $1: ldloc 0 // t0 ret .maxstack 2 } // end of method T.get_Item .method hidebysig specialname public instance void 'set_Item'(int32 'a',class 'T' 'b',int32 'value') { ldarg.0 ldarg 2 // b ldarg 3 // value .locals init ([0]int32 't0') dup stloc 0 // t0 stfld int32 'T'::'x' ldloc 0 // t0 stfld int32 'T'::'x' ret .maxstack 4 } // end of method T.set_Item .method hidebysig specialname rtspecialname public void .ctor(int32 'x') { ldarg.0 call instance void [mscorlib]System.Object::.ctor() ldarg.0 ldarg 1 // x stfld int32 'T'::'x' ret .maxstack 2 } // end of constructor T.T .method hidebysig public instance void 'print'() { ldstr "{0}" ldarg.0 ldfld int32 'T'::'x' box int32 call void [mscorlib]System.Console::'WriteLine'(string,object) ret .maxstack 2 } // end of method T.print .method hidebysig static public void 'Main'() { .entrypoint .locals init ([0]class 'T' 't0') .locals init ([1]class 'T' 't1') ldc.i4 1 newobj instance void 'T'::.ctor(int32) stloc 0 // a ldc.i4 10 newobj instance void 'T'::.ctor(int32) stloc 1 // b ldloc 0 // a call instance void 'T'::'print'() ldloc 1 // b call instance void 'T'::'print'() ldstr "{0}" ldloc 0 // a ldc.i4 2 ldloc 1 // b call instance int32 'T'::'get_Item'(int32,class 'T') box int32 call void [mscorlib]System.Console::'WriteLine'(string,object) ldloc 0 // a ldc.i4 2 ldloc 1 // b ldc.i4 20 call instance void 'T'::'set_Item'(int32,class 'T',int32) ldloc 0 // a call instance void 'T'::'print'() ldloc 1 // b call instance void 'T'::'print'() ldstr "{0}" ldloc 0 // a .locals init ([2]class 'T' 't2') dup stloc 2 // t2 ldc.i4 2 ldloc 1 // b .locals init ([3]class 'T' 't3') dup stloc 3 // t3 call instance int32 'T'::'get_Item'(int32,class 'T') dup ldc.i4.1 add .locals init ([4]int32 't4') stloc 4 // t4 ldloc 2 // t2 ldc.i4 2 ldloc 3 // t3 ldloc 4 // t4 call instance void 'T'::'set_Item'(int32,class 'T',int32) box int32 call void [mscorlib]System.Console::'WriteLine'(string,object) ldloc 1 // b call instance void 'T'::'print'() ldloc 0 // a .locals init ([5]class 'T' 't5') dup stloc 5 // t5 ldc.i4 2 ldloc 1 // b .locals init ([6]class 'T' 't6') dup stloc 6 // t6 call instance int32 'T'::'get_Item'(int32,class 'T') ldc.i4 5 add .locals init ([7]int32 't7') stloc 7 // t7 ldloc 5 // t5 ldc.i4 2 ldloc 6 // t6 ldloc 7 // t7 call instance void 'T'::'set_Item'(int32,class 'T',int32) ldloc 0 // a call instance void 'T'::'print'() ldloc 1 // b call instance void 'T'::'print'() ret .maxstack 6 } // end of method T.Main } // end of class T