// Microsoft (R) .NET Framework IL Disassembler. Version 2.0.50727.42 // Copyright (c) Microsoft Corporation. All rights reserved. // Metadata version: v2.0.50727 .assembly extern mscorlib { .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. .ver 2:0:0:0 } .assembly mig2 { .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32) = ( 01 00 08 00 00 00 00 00 ) .custom instance void [mscorlib]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute::.ctor() = ( 01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78 // ....T..WrapNonEx 63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01 ) // ceptionThrows. .hash algorithm 0x00008004 .ver 0:0:0:0 } .module mig2.exe // MVID: {E66D717B-A7BD-463B-94E0-A38CA7F1A936} .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY // Image base: 0x033B0000 // =============== CLASS MEMBERS DECLARATION =================== .class private auto ansi beforefieldinit Driver extends [mscorlib]System.Object { .method public hidebysig static void Main() cil managed { .entrypoint // Code size 60 (0x3c) .maxstack 2 .locals init (string V_0, bool V_1) IL_0000: nop IL_0001: ldstr "Starting Main" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ldstr "Echo!" IL_0011: call string Test::EchoAndReturn(string) IL_0016: pop IL_0017: ldstr "After echo" IL_001c: call void [mscorlib]System.Console::WriteLine(string) IL_0021: nop IL_0022: ldsfld string Test::x IL_0027: stloc.0 IL_0028: ldloc.0 IL_0029: ldnull IL_002a: ceq IL_002c: stloc.1 IL_002d: ldloc.1 IL_002e: brtrue.s IL_003b IL_0030: ldstr "After field access" IL_0035: call void [mscorlib]System.Console::WriteLine(string) IL_003a: nop IL_003b: ret } // end of method Driver::Main .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret } // end of method Driver::.ctor } // end of class Driver .class private auto ansi beforefieldinit Test extends [mscorlib]System.Object { .field public static string x .method public hidebysig static string EchoAndReturn(string s) cil managed { // Code size 14 (0xe) .maxstack 1 .locals init (string V_0) IL_0000: nop IL_0001: ldarg.0 IL_0002: call void [mscorlib]System.Console::WriteLine(string) IL_0007: nop IL_0008: ldarg.0 IL_0009: stloc.0 IL_000a: br.s IL_000c IL_000c: ldloc.0 IL_000d: ret } // end of method Test::EchoAndReturn .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret } // end of method Test::.ctor .method private hidebysig specialname rtspecialname static void .cctor() cil managed { // Code size 16 (0x10) .maxstack 8 IL_0000: ldstr "In type initializer" IL_0005: call string Test::EchoAndReturn(string) IL_000a: stsfld string Test::x IL_000f: ret } // end of method Test::.cctor } // end of class Test // ============================================================= // *********** DISASSEMBLY COMPLETE ***********************