2 // Microsoft (R) .NET Framework IL Disassembler. Version 4.6.1055.0
3 // Copyright (c) Microsoft Corporation. All rights reserved.
7 // Metadata version: v4.0.30319
8 .assembly extern mscorlib
10 .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
15 .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32) = ( 01 00 08 00 00 00 00 00 )
16 .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
17 63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01 ) // ceptionThrows.
19 // --- The following custom attribute is added automatically, do not uncomment -------
20 // .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 07 01 00 00 00 00 )
22 .hash algorithm 0x00008004
26 // MVID: {0B8FCFD0-673A-4DEB-90CC-B96749DE09C8}
28 .file alignment 0x00000200
29 .stackreserve 0x00100000
30 .subsystem 0x0003 // WINDOWS_CUI
31 .corflags 0x00000001 // ILONLY
32 // Image base: 0x01A80000
35 // =============== CLASS MEMBERS DECLARATION ===================
37 .class interface private abstract auto ansi IBlah
39 .method public hidebysig newslot virtual
40 instance int32 Blah(int32 c) cil managed
42 // Code size 39 (0x27)
44 .locals init (int32 V_0)
46 IL_0001: ldstr "At IBlah.Blah"
47 IL_0006: call void [mscorlib]System.Console::WriteLine(string)
51 IL_000e: call instance int32 IBlah::Blah_Private_GetA()
54 IL_0015: call instance int32 IBlah::Blah_Internal_GetB()
57 IL_001c: call instance int32 IBlah::Blah_Protected_GetC()
64 } // end of method IBlah::Blah
66 .method private hidebysig instance int32
67 Blah_Private_GetA() cil managed
69 // Code size 18 (0x12)
71 .locals init (int32 V_0)
73 IL_0001: ldstr "At IBlah.Blah_Private_GetA"
74 IL_0006: call void [mscorlib]System.Console::WriteLine(string)
82 } // end of method IBlah_Impl::Blah_Private_GetA
84 .method assembly hidebysig instance int32
85 Blah_Internal_GetB() cil managed
87 // Code size 18 (0x12)
89 .locals init (int32 V_0)
91 IL_0001: ldstr "At IBlah.Blah_Internal_GetB"
92 IL_0006: call void [mscorlib]System.Console::WriteLine(string)
100 } // end of method IBlah_Impl::Blah_Internal_GetB
102 .method family hidebysig instance int32
103 Blah_Protected_GetC() cil managed
105 // Code size 18 (0x12)
107 .locals init (int32 V_0)
109 IL_0001: ldstr "At IBlah.Blah_Protected_GetC"
110 IL_0006: call void [mscorlib]System.Console::WriteLine(string)
114 IL_000e: br.s IL_0010
118 } // end of method IBlah_Impl::Blah_Protected_GetC
119 } // end of class IBlah
121 .class interface private abstract auto ansi IFoo
123 .method public hidebysig newslot virtual
124 instance int32 Foo(int32 a) cil managed
126 // Code size 20 (0x14)
128 .locals init (int32 V_0)
130 IL_0001: ldstr "At IFoo.Foo"
131 IL_0006: call void [mscorlib]System.Console::WriteLine(string)
137 IL_0010: br.s IL_0012
141 } // end of method IFoo::Foo
143 } // end of class IFoo
145 .class interface private abstract auto ansi IBar
147 .method public hidebysig newslot virtual
148 instance int32 Bar(int32 b) cil managed
150 // Code size 21 (0x15)
152 .locals init (int32 V_0)
154 IL_0001: ldstr "At IBar.Bar"
155 IL_0006: call void [mscorlib]System.Console::WriteLine(string)
161 IL_0011: br.s IL_0013
165 } // end of method IBar::Bar
167 } // end of class IBar
169 .class private auto ansi beforefieldinit Base
170 extends [mscorlib]System.Object
173 .method public hidebysig specialname rtspecialname
174 instance void .ctor() cil managed
179 IL_0001: call instance void [mscorlib]System.Object::.ctor()
182 } // end of method Base::.ctor
184 } // end of class Base
186 .class private auto ansi beforefieldinit FooBar
191 .method public hidebysig instance int32
192 CallBlahProtected() cil managed
194 // Code size 12 (0xc)
196 .locals init (int32 V_0)
199 IL_0002: call instance int32 IBlah::Blah_Protected_GetC()
201 IL_0008: br.s IL_000a
205 } // end of method FooBar::CallBlahProtected
207 .method public hidebysig specialname rtspecialname
208 instance void .ctor() cil managed
213 IL_0001: call instance void Base::.ctor()
216 } // end of method FooBar::.ctor
218 } // end of class FooBar
220 .class private auto ansi beforefieldinit Program
221 extends [mscorlib]System.Object
223 .method public hidebysig static int32 Main() cil managed
226 // Code size 158 (0x9e)
228 .locals init (class FooBar V_0,
234 IL_0001: newobj instance void FooBar::.ctor()
242 IL_000d: ldstr "Calling IFoo.Foo on FooBar - expecting default met"
243 + "hod on IFoo.Foo. "
244 IL_0012: call void [mscorlib]System.Console::WriteLine(string)
248 IL_001b: callvirt instance int32 IFoo::Foo(int32)
251 IL_0024: ldstr "Calling IFoo.Foo on FooBar"
252 IL_0029: call void Test::Assert(bool,
255 IL_002f: ldstr "Calling IBar.Bar on FooBar - expecting default met"
256 + "hod on IBar.Bar. "
257 IL_0034: call void [mscorlib]System.Console::WriteLine(string)
261 IL_003d: callvirt instance int32 IBar::Bar(int32)
264 IL_0046: ldstr "Calling IBar.Bar on FooBar"
265 IL_004b: call void Test::Assert(bool,
268 IL_0051: ldstr "Calling IBlah.Blah on FooBar - expecting default m"
269 + "ethod on IBlah.Blah from Base. "
270 IL_0056: call void [mscorlib]System.Console::WriteLine(string)
274 IL_005f: callvirt instance int32 IBlah::Blah(int32)
277 IL_0068: ldstr "Calling IBlah.Blah on FooBar"
278 IL_006d: call void Test::Assert(bool,
281 IL_0073: ldstr "Calling FooBar.CallBlahProtected - expecting prote"
282 + "cted methods on interface can be called"
283 IL_0078: call void [mscorlib]System.Console::WriteLine(string)
286 IL_007f: callvirt instance int32 FooBar::CallBlahProtected()
289 IL_0087: ldstr "Calling FooBar.CallBlahProtected"
290 IL_008c: call void Test::Assert(bool,
293 IL_0092: call int32 Test::Ret()
295 IL_0099: br.s IL_009b
299 } // end of method Program::Main
301 .method public hidebysig specialname rtspecialname
302 instance void .ctor() cil managed
307 IL_0001: call instance void [mscorlib]System.Object::.ctor()
310 } // end of method Program::.ctor
312 } // end of class Program
314 .class private auto ansi beforefieldinit Test
315 extends [mscorlib]System.Object
317 .field private static bool Pass
318 .method public hidebysig static int32 Ret() cil managed
320 // Code size 19 (0x13)
322 .locals init (int32 V_0)
324 IL_0001: ldsfld bool Test::Pass
325 IL_0006: brtrue.s IL_000c
327 IL_0008: ldc.i4.s 101
328 IL_000a: br.s IL_000e
332 IL_000f: br.s IL_0011
336 } // end of method Test::Ret
338 .method public hidebysig static void Assert(bool cond,
339 string msg) cil managed
341 // Code size 47 (0x2f)
343 .locals init (bool V_0)
348 IL_0004: brfalse.s IL_0015
351 IL_0007: ldstr "PASS"
352 IL_000c: call void [mscorlib]System.Console::WriteLine(string)
355 IL_0013: br.s IL_002e
358 IL_0016: ldstr "FAIL: "
360 IL_001c: call string [mscorlib]System.String::Concat(string,
362 IL_0021: call void [mscorlib]System.Console::WriteLine(string)
365 IL_0028: stsfld bool Test::Pass
368 } // end of method Test::Assert
370 .method public hidebysig specialname rtspecialname
371 instance void .ctor() cil managed
376 IL_0001: call instance void [mscorlib]System.Object::.ctor()
379 } // end of method Test::.ctor
381 .method private hidebysig specialname rtspecialname static
382 void .cctor() cil managed
387 IL_0001: stsfld bool Test::Pass
389 } // end of method Test::.cctor
391 } // end of class Test
394 // =============================================================
396 // *********** DISASSEMBLY COMPLETE ***********************
397 // WARNING: Created Win32 resource file simple.res