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
25 .module methodimpl.exe
26 // MVID: {F249A85F-3FD2-488F-B084-97B542AD68D6}
28 .file alignment 0x00000200
29 .stackreserve 0x00100000
30 .subsystem 0x0003 // WINDOWS_CUI
31 .corflags 0x00000001 // ILONLY
32 // Image base: 0x02FD0000
35 // =============== CLASS MEMBERS DECLARATION ===================
37 .class interface private abstract auto ansi IFoo
39 .method public hidebysig newslot virtual
40 instance int32 Foo1(int32 a) cil managed
42 // Code size 21 (0x15)
44 .locals init (int32 V_0)
46 IL_0001: ldstr "At IIFoo.Foo1"
47 IL_0006: call void [mscorlib]System.Console::WriteLine(string)
57 } // end of method IFoo::Foo1
59 .method public hidebysig newslot virtual
60 instance int32 Foo2(int32 a) cil managed
62 // Code size 21 (0x15)
64 .locals init (int32 V_0)
66 IL_0001: ldstr "At IFoo.Foo2"
67 IL_0006: call void [mscorlib]System.Console::WriteLine(string)
77 } // end of method IFoo::Foo2
79 .method public hidebysig newslot virtual
80 instance int32 Foo3(int32 a) cil managed
82 // Code size 21 (0x15)
84 .locals init (int32 V_0)
86 IL_0001: ldstr "At IFoo.Foo3"
87 IL_0006: call void [mscorlib]System.Console::WriteLine(string)
97 } // end of method IFoo::Foo3
99 .method public hidebysig newslot virtual
100 instance int32 Foo4(int32 a) cil managed
102 // Code size 21 (0x15)
104 .locals init (int32 V_0)
106 IL_0001: ldstr "At IFoo.Foo4"
107 IL_0006: call void [mscorlib]System.Console::WriteLine(string)
113 IL_0011: br.s IL_0013
117 } // end of method IFoo::Foo4
119 .method public hidebysig newslot virtual
120 instance int32 Foo5(int32 a) cil managed
122 // Code size 21 (0x15)
124 .locals init (int32 V_0)
126 IL_0001: ldstr "At IFoo.Foo5"
127 IL_0006: call void [mscorlib]System.Console::WriteLine(string)
133 IL_0011: br.s IL_0013
137 } // end of method IFoo::Foo5
139 .method public hidebysig newslot virtual
140 instance int32 Foo6(int32 a) cil managed
142 // Code size 21 (0x15)
144 .locals init (int32 V_0)
146 IL_0001: ldstr "At IFoo.Foo6"
147 IL_0006: call void [mscorlib]System.Console::WriteLine(string)
153 IL_0011: br.s IL_0013
157 } // end of method IFoo::Foo6
159 .method public hidebysig newslot virtual
160 instance int32 Foo7(int32 a) cil managed
162 // Code size 21 (0x15)
164 .locals init (int32 V_0)
166 IL_0001: ldstr "At IFoo.Foo7"
167 IL_0006: call void [mscorlib]System.Console::WriteLine(string)
173 IL_0011: br.s IL_0013
177 } // end of method IFoo::Foo7
179 .method public hidebysig newslot virtual
180 instance int32 Foo8(int32 a) cil managed
182 // Code size 21 (0x15)
184 .locals init (int32 V_0)
186 IL_0001: ldstr "At IFoo.Foo8"
187 IL_0006: call void [mscorlib]System.Console::WriteLine(string)
193 IL_0011: br.s IL_0013
197 } // end of method IFoo::Foo8
199 .method public hidebysig newslot virtual
200 instance int32 Foo9(int32 a) cil managed
202 // Code size 21 (0x15)
204 .locals init (int32 V_0)
206 IL_0001: ldstr "At IFoo.Foo9"
207 IL_0006: call void [mscorlib]System.Console::WriteLine(string)
213 IL_0011: br.s IL_0013
217 } // end of method IFoo::Foo9
218 } // end of class IFoo
220 .class interface private abstract auto ansi IBar
223 .method public hidebysig newslot virtual
224 instance int32 Bar1(int32 a) cil managed
226 // Code size 21 (0x15)
228 .locals init (int32 V_0)
230 IL_0001: ldstr "At IIBar.Bar1"
231 IL_0006: call void [mscorlib]System.Console::WriteLine(string)
237 IL_0011: br.s IL_0013
241 } // end of method IBar::Bar1
243 .method public hidebysig newslot virtual
244 instance int32 Bar2(int32 a) cil managed
246 // Code size 21 (0x15)
248 .locals init (int32 V_0)
250 IL_0001: ldstr "At IBar.Bar2"
251 IL_0006: call void [mscorlib]System.Console::WriteLine(string)
257 IL_0011: br.s IL_0013
261 } // end of method IBar::Bar2
263 .method public hidebysig newslot virtual
264 instance int32 Bar3(int32 a) cil managed
266 // Code size 21 (0x15)
268 .locals init (int32 V_0)
270 IL_0001: ldstr "At IBar.Bar3"
271 IL_0006: call void [mscorlib]System.Console::WriteLine(string)
277 IL_0011: br.s IL_0013
281 } // end of method IBar::Bar3
283 .method public hidebysig newslot virtual
284 instance int32 Bar4(int32 a) cil managed
286 // Code size 21 (0x15)
288 .locals init (int32 V_0)
290 IL_0001: ldstr "At IBar.Bar4"
291 IL_0006: call void [mscorlib]System.Console::WriteLine(string)
297 IL_0011: br.s IL_0013
301 } // end of method IBar::Bar4
303 .method public hidebysig newslot virtual
304 instance int32 Bar5(int32 a) cil managed
306 // Code size 21 (0x15)
308 .locals init (int32 V_0)
310 IL_0001: ldstr "At IBar.Bar5"
311 IL_0006: call void [mscorlib]System.Console::WriteLine(string)
317 IL_0011: br.s IL_0013
321 } // end of method IBar::Bar5
323 .method public hidebysig newslot virtual
324 instance int32 Bar6(int32 a) cil managed
326 // Code size 21 (0x15)
328 .locals init (int32 V_0)
330 IL_0001: ldstr "At IBar.Bar6"
331 IL_0006: call void [mscorlib]System.Console::WriteLine(string)
337 IL_0011: br.s IL_0013
341 } // end of method IBar::Bar6
343 .method public hidebysig newslot virtual
344 instance int32 Bar7(int32 a) cil managed
346 // Code size 21 (0x15)
348 .locals init (int32 V_0)
350 IL_0001: ldstr "At IBar.Bar7"
351 IL_0006: call void [mscorlib]System.Console::WriteLine(string)
357 IL_0011: br.s IL_0013
361 } // end of method IBar::Bar7
363 .method public hidebysig newslot virtual
364 instance int32 Bar8(int32 a) cil managed
366 // Code size 21 (0x15)
368 .locals init (int32 V_0)
370 IL_0001: ldstr "At IBar.Bar8"
371 IL_0006: call void [mscorlib]System.Console::WriteLine(string)
377 IL_0011: br.s IL_0013
381 } // end of method IBar::Bar8
383 .method public hidebysig newslot virtual
384 instance int32 Bar9(int32 a) cil managed
386 // Code size 21 (0x15)
388 .locals init (int32 V_0)
390 IL_0001: ldstr "At IBar.Bar9"
391 IL_0006: call void [mscorlib]System.Console::WriteLine(string)
397 IL_0011: br.s IL_0013
401 } // end of method IBar::Bar9
403 //////////////////////////////////////////////////////////////////////////////
405 //////////////////////////////////////////////////////////////////////////////
407 .method private hidebysig newslot virtual final
408 instance int32 IFoo.Foo1(int32 a) cil managed
411 // Code size 21 (0x15)
413 .locals init (int32 V_0)
415 IL_0001: ldstr "At IBar::IFoo.Foo1"
416 IL_0006: call void [mscorlib]System.Console::WriteLine(string)
422 IL_0011: br.s IL_0013
426 } // end of method IBar::IFoo.Foo1
428 .method private hidebysig newslot virtual final
429 instance int32 IFoo.Foo2(int32 a) cil managed
432 // Code size 21 (0x15)
434 .locals init (int32 V_0)
436 IL_0001: ldstr "At IBar::IFoo.Foo2"
437 IL_0006: call void [mscorlib]System.Console::WriteLine(string)
443 IL_0011: br.s IL_0013
447 } // end of method IBar::IFoo.Foo2
449 .method private hidebysig newslot virtual final
450 instance int32 IFoo.Foo3(int32 a) cil managed
453 // Code size 21 (0x15)
455 .locals init (int32 V_0)
457 IL_0001: ldstr "At IBar::IFoo.Foo3"
458 IL_0006: call void [mscorlib]System.Console::WriteLine(string)
464 IL_0011: br.s IL_0013
468 } // end of method IBar::IFoo.Foo3
470 .method private hidebysig newslot virtual final
471 instance int32 IFoo.Foo4(int32 a) cil managed
474 // Code size 21 (0x15)
476 .locals init (int32 V_0)
478 IL_0001: ldstr "At IBar::IFoo.Foo4"
479 IL_0006: call void [mscorlib]System.Console::WriteLine(string)
485 IL_0011: br.s IL_0013
489 } // end of method IBar::IFoo.Foo4
491 .method private hidebysig newslot virtual final
492 instance int32 IFoo.Foo5(int32 a) cil managed
495 // Code size 21 (0x15)
497 .locals init (int32 V_0)
499 IL_0001: ldstr "At IBar::IFoo.Foo5"
500 IL_0006: call void [mscorlib]System.Console::WriteLine(string)
506 IL_0011: br.s IL_0013
510 } // end of method IBar::IFoo.Foo5
511 } // end of class IBar
513 .class interface private abstract auto ansi IBlah
517 .method public hidebysig newslot virtual
518 instance int32 Blah1(int32 c) cil managed
520 // Code size 21 (0x15)
522 .locals init (int32 V_0)
524 IL_0001: ldstr "At IBlah.Blah1"
525 IL_0006: call void [mscorlib]System.Console::WriteLine(string)
531 IL_0011: br.s IL_0013
535 } // end of method IBlah::Blah1
537 .method public hidebysig newslot virtual
538 instance int32 Blah2(int32 c) cil managed
540 // Code size 21 (0x15)
542 .locals init (int32 V_0)
544 IL_0001: ldstr "At IBlah.Blah2"
545 IL_0006: call void [mscorlib]System.Console::WriteLine(string)
551 IL_0011: br.s IL_0013
555 } // end of method IBlah::Blah2
557 .method public hidebysig newslot virtual
558 instance int32 Blah3(int32 c) cil managed
560 // Code size 21 (0x15)
562 .locals init (int32 V_0)
564 IL_0001: ldstr "At IBlah.Blah3"
565 IL_0006: call void [mscorlib]System.Console::WriteLine(string)
571 IL_0011: br.s IL_0013
575 } // end of method IBlah::Blah3
577 //////////////////////////////////////////////////////////////////////////////
579 //////////////////////////////////////////////////////////////////////////////
581 .method private hidebysig newslot virtual final
582 instance int32 IFoo.Foo6(int32 a) cil managed
585 // Code size 21 (0x15)
587 .locals init (int32 V_0)
589 IL_0001: ldstr "At IBlah::IFoo.Foo6"
590 IL_0006: call void [mscorlib]System.Console::WriteLine(string)
596 IL_0011: br.s IL_0013
600 } // end of method IBlah::IFoo.Foo6
602 .method private hidebysig newslot virtual final
603 instance int32 IFoo.Foo7(int32 a) cil managed
606 // Code size 21 (0x15)
608 .locals init (int32 V_0)
610 IL_0001: ldstr "At IBlah::IFoo.Foo7"
611 IL_0006: call void [mscorlib]System.Console::WriteLine(string)
617 IL_0011: br.s IL_0013
621 } // end of method IBlah::IFoo.Foo6
623 .method private hidebysig newslot virtual final
624 instance int32 IFoo.Foo8(int32 a) cil managed
627 // Code size 21 (0x15)
629 .locals init (int32 V_0)
631 IL_0001: ldstr "At IBlah::IFoo.Foo8"
632 IL_0006: call void [mscorlib]System.Console::WriteLine(string)
638 IL_0011: br.s IL_0013
642 } // end of method IBlah::IFoo.Foo8
644 .method private hidebysig newslot virtual final
645 instance int32 IFoo.Foo9(int32 a) cil managed
648 // Code size 21 (0x15)
650 .locals init (int32 V_0)
652 IL_0001: ldstr "At IBlah::IFoo.Foo9"
653 IL_0006: call void [mscorlib]System.Console::WriteLine(string)
659 IL_0011: br.s IL_0013
663 } // end of method IBlah::IFoo.Foo9
665 //////////////////////////////////////////////////////////////////////////////
667 //////////////////////////////////////////////////////////////////////////////
669 .method private hidebysig newslot virtual final
670 instance int32 IBar.Bar1(int32 a) cil managed
673 // Code size 21 (0x15)
675 .locals init (int32 V_0)
677 IL_0001: ldstr "At IBlah::IBar.Bar1"
678 IL_0006: call void [mscorlib]System.Console::WriteLine(string)
681 IL_000d: ldc.i4.s 110
684 IL_0011: br.s IL_0013
688 } // end of method IBlah::IBar.Bar1
690 .method private hidebysig newslot virtual final
691 instance int32 IBar.Bar2(int32 a) cil managed
694 // Code size 21 (0x15)
696 .locals init (int32 V_0)
698 IL_0001: ldstr "At IBlah::IBar.Bar2"
699 IL_0006: call void [mscorlib]System.Console::WriteLine(string)
705 IL_0011: br.s IL_0013
709 } // end of method IBlah::IBar.Bar2
711 .method private hidebysig newslot virtual final
712 instance int32 IBar.Bar3(int32 a) cil managed
715 // Code size 21 (0x15)
717 .locals init (int32 V_0)
719 IL_0001: ldstr "At IBlah::IBar.Bar3"
720 IL_0006: call void [mscorlib]System.Console::WriteLine(string)
726 IL_0011: br.s IL_0013
730 } // end of method IBlah::IBar.Bar3
732 .method private hidebysig newslot virtual final
733 instance int32 IBar.Bar4(int32 a) cil managed
736 // Code size 21 (0x15)
738 .locals init (int32 V_0)
740 IL_0001: ldstr "At IBlah::IBar.Bar4"
741 IL_0006: call void [mscorlib]System.Console::WriteLine(string)
747 IL_0011: br.s IL_0013
751 } // end of method IBlah::IBar.Bar4
753 .method private hidebysig newslot virtual final
754 instance int32 IBar.Bar5(int32 a) cil managed
757 // Code size 21 (0x15)
759 .locals init (int32 V_0)
761 IL_0001: ldstr "At IBlah::IBar.Bar5"
762 IL_0006: call void [mscorlib]System.Console::WriteLine(string)
768 IL_0011: br.s IL_0013
772 } // end of method IBlah::IBar.Bar5
773 } // end of class IBlah
775 .class private auto ansi beforefieldinit IBarImpl
776 extends [mscorlib]System.Object
780 .method public hidebysig specialname rtspecialname
781 instance void .ctor() cil managed
786 IL_0001: call instance void [mscorlib]System.Object::.ctor()
789 } // end of method IBarImpl::.ctor
791 } // end of class IBarImpl
793 .class private auto ansi beforefieldinit IBlahImpl
799 .method private hidebysig newslot virtual final
800 instance int32 IBlah.Blah2(int32 c) cil managed
802 .override IBlah::Blah2
803 // Code size 21 (0x15)
805 .locals init (int32 V_0)
807 IL_0001: ldstr "At IBlahImpl::IBlah.Blah2"
808 IL_0006: call void [mscorlib]System.Console::WriteLine(string)
814 IL_0011: br.s IL_0013
818 } // end of method IBlahImpl::IBlah.Blah2
820 .method private hidebysig newslot virtual final
821 instance int32 IBlah.Blah3(int32 c) cil managed
823 .override IBlah::Blah3
824 // Code size 21 (0x15)
826 .locals init (int32 V_0)
828 IL_0001: ldstr "At IBlahImpl::IBlah.Blah2"
829 IL_0006: call void [mscorlib]System.Console::WriteLine(string)
835 IL_0011: br.s IL_0013
839 } // end of method IBlahImpl::IBlah.Blah3
841 .method public hidebysig specialname rtspecialname
842 instance void .ctor() cil managed
847 IL_0001: call instance void IBarImpl::.ctor()
850 } // end of method IBlahImpl::.ctor
852 } // end of class IBlahImpl
854 .class interface private abstract auto ansi IFooBarBlah
859 .method private hidebysig newslot virtual final
860 instance int32 IFooBarBlah.FooBarBlah1(int32 c) cil managed
864 .override IBlah::Blah1
865 // Code size 21 (0x15)
867 .locals init (int32 V_0)
869 IL_0001: ldstr "At IFooBarBlah.FooBarBlah1"
870 IL_0006: call void [mscorlib]System.Console::WriteLine(string)
873 IL_000d: ldc.i4 11111
876 IL_0011: br.s IL_0013
880 } // end of method IFooBarBlah.FooBarBlah1
881 .method private hidebysig newslot virtual final
882 instance int32 IFooBarBlah.FooBarBlah2(int32 c) cil managed
886 .override IBlah::Blah2
887 // Code size 21 (0x15)
889 .locals init (int32 V_0)
891 IL_0001: ldstr "At IFooBarBlah.FooBarBlah2"
892 IL_0006: call void [mscorlib]System.Console::WriteLine(string)
895 IL_000d: ldc.i4 22222
898 IL_0011: br.s IL_0013
902 } // end of method IFooBarBlah.FooBarBlah1
904 .method private hidebysig newslot virtual final
905 instance int32 IFooBarBlah.FooBarBlah3(int32 c) cil managed
913 .override IBlah::Blah3
914 // Code size 21 (0x15)
916 .locals init (int32 V_0)
918 IL_0001: ldstr "At IFooBarBlah.FooBarBlah3"
919 IL_0006: call void [mscorlib]System.Console::WriteLine(string)
922 IL_000d: ldc.i4 33333
925 IL_0011: br.s IL_0013
929 } // end of method IFooBarBlah.FooBarBlah3
930 } // end of class IFooBarBlah
932 .class private auto ansi beforefieldinit FooBarBlahImpl
933 implements IFooBarBlah,
938 .method public hidebysig specialname rtspecialname
939 instance void .ctor() cil managed
944 IL_0001: call instance void IBlahImpl::.ctor()
947 } // end of method FooBarBlahImpl::.ctor
949 } // end of class FooBarBlahImpl
951 .class private auto ansi beforefieldinit Program
952 extends [mscorlib]System.Object
954 .method public hidebysig static int32 Main() cil managed
957 // Code size 23 (0x17)
959 .locals init (int32 V_0)
961 IL_0001: call void Program::SingleOverride()
963 IL_0007: call void Program::MultiOverride()
965 IL_000d: call int32 Test::Ret()
967 IL_0013: br.s IL_0015
971 } // end of method Program::Main
973 .method private hidebysig static void SingleOverride() cil managed
975 // Code size 946 (0x3b2)
977 .locals init (class IBarImpl V_0,
983 IL_0001: newobj instance void IBarImpl::.ctor()
987 IL_0009: ldstr "Calling IFoo.Foo methods on IBarImpl..."
988 IL_000e: call void [mscorlib]System.Console::WriteLine(string)
992 IL_0016: callvirt instance int32 IFoo::Foo1(int32)
995 IL_001f: ldstr "Calling IFoo.Foo1 on IBarImpl"
996 IL_0024: call void Test::Assert(bool,
1001 IL_002c: callvirt instance int32 IFoo::Foo2(int32)
1002 IL_0031: ldc.i4.s 22
1004 IL_0035: ldstr "Calling IFoo.Foo2 on IBarImpl"
1005 IL_003a: call void Test::Assert(bool,
1010 IL_0042: callvirt instance int32 IFoo::Foo3(int32)
1011 IL_0047: ldc.i4.s 33
1013 IL_004b: ldstr "Calling IFoo.Foo3 on IBarImpl"
1014 IL_0050: call void Test::Assert(bool,
1019 IL_0058: callvirt instance int32 IFoo::Foo4(int32)
1020 IL_005d: ldc.i4.s 44
1022 IL_0061: ldstr "Calling IFoo.Foo4 on IBarImpl"
1023 IL_0066: call void Test::Assert(bool,
1028 IL_006e: callvirt instance int32 IFoo::Foo5(int32)
1029 IL_0073: ldc.i4.s 55
1031 IL_0077: ldstr "Calling IFoo.Foo5 on IBarImpl"
1032 IL_007c: call void Test::Assert(bool,
1037 IL_0084: callvirt instance int32 IFoo::Foo6(int32)
1040 IL_008c: ldstr "Calling IFoo.Foo6 on IBarImpl"
1041 IL_0091: call void Test::Assert(bool,
1046 IL_0099: callvirt instance int32 IFoo::Foo7(int32)
1049 IL_00a1: ldstr "Calling IFoo.Foo7 on IBarImpl"
1050 IL_00a6: call void Test::Assert(bool,
1055 IL_00ae: callvirt instance int32 IFoo::Foo8(int32)
1058 IL_00b6: ldstr "Calling IFoo.Foo8 on IBarImpl"
1059 IL_00bb: call void Test::Assert(bool,
1064 IL_00c3: callvirt instance int32 IFoo::Foo9(int32)
1067 IL_00cc: ldstr "Calling IFoo.Foo9 on IBarImpl"
1068 IL_00d1: call void Test::Assert(bool,
1073 IL_00d9: ldstr "Calling IBar.Bar methods on IBarImpl..."
1074 IL_00de: call void [mscorlib]System.Console::WriteLine(string)
1078 IL_00e6: callvirt instance int32 IBar::Bar1(int32)
1079 IL_00eb: ldc.i4.s 11
1081 IL_00ef: ldstr "Calling IBar.Bar1 on IBarImpl"
1082 IL_00f4: call void Test::Assert(bool,
1087 IL_00fc: callvirt instance int32 IBar::Bar2(int32)
1088 IL_0101: ldc.i4.s 22
1090 IL_0105: ldstr "Calling IBar.Bar2 on IBarImpl"
1091 IL_010a: call void Test::Assert(bool,
1096 IL_0112: callvirt instance int32 IBar::Bar3(int32)
1097 IL_0117: ldc.i4.s 33
1099 IL_011b: ldstr "Calling IBar.Bar3 on IBarImpl"
1100 IL_0120: call void Test::Assert(bool,
1105 IL_0128: callvirt instance int32 IBar::Bar4(int32)
1106 IL_012d: ldc.i4.s 44
1108 IL_0131: ldstr "Calling IBar.Bar4 on IBarImpl"
1109 IL_0136: call void Test::Assert(bool,
1114 IL_013e: callvirt instance int32 IBar::Bar5(int32)
1115 IL_0143: ldc.i4.s 55
1117 IL_0147: ldstr "Calling IBar.Bar5 on IBarImpl"
1118 IL_014c: call void Test::Assert(bool,
1123 IL_0154: callvirt instance int32 IBar::Bar6(int32)
1124 IL_0159: ldc.i4.s 66
1126 IL_015d: ldstr "Calling IBar.Bar6 on IBarImpl"
1127 IL_0162: call void Test::Assert(bool,
1132 IL_016a: callvirt instance int32 IBar::Bar7(int32)
1133 IL_016f: ldc.i4.s 77
1135 IL_0173: ldstr "Calling IBar.Bar7 on IBarImpl"
1136 IL_0178: call void Test::Assert(bool,
1141 IL_0180: callvirt instance int32 IBar::Bar8(int32)
1142 IL_0185: ldc.i4.s 88
1144 IL_0189: ldstr "Calling IBar.Bar8 on IBarImpl"
1145 IL_018e: call void Test::Assert(bool,
1150 IL_0196: callvirt instance int32 IBar::Bar9(int32)
1151 IL_019b: ldc.i4.s 99
1153 IL_019f: ldstr "Calling IBar.Bar9 on IBarImpl"
1154 IL_01a4: call void Test::Assert(bool,
1157 IL_01aa: newobj instance void IBlahImpl::.ctor()
1163 IL_01b4: callvirt instance int32 IFoo::Foo1(int32)
1164 IL_01b9: ldc.i4.s 11
1166 IL_01bd: ldstr "Calling IFoo.Foo1 on IBlahImpl"
1167 IL_01c2: call void Test::Assert(bool,
1172 IL_01ca: callvirt instance int32 IFoo::Foo2(int32)
1173 IL_01cf: ldc.i4.s 22
1175 IL_01d3: ldstr "Calling IFoo.Foo2 on IBlahImpl"
1176 IL_01d8: call void Test::Assert(bool,
1181 IL_01e0: callvirt instance int32 IFoo::Foo3(int32)
1182 IL_01e5: ldc.i4.s 33
1184 IL_01e9: ldstr "Calling IFoo.Foo3 on IBlahImpl"
1185 IL_01ee: call void Test::Assert(bool,
1190 IL_01f6: callvirt instance int32 IFoo::Foo4(int32)
1191 IL_01fb: ldc.i4.s 44
1193 IL_01ff: ldstr "Calling IFoo.Foo4 on IBlahImpl"
1194 IL_0204: call void Test::Assert(bool,
1199 IL_020c: callvirt instance int32 IFoo::Foo5(int32)
1200 IL_0211: ldc.i4.s 55
1202 IL_0215: ldstr "Calling IFoo.Foo5 on IBlahImpl"
1203 IL_021a: call void Test::Assert(bool,
1208 IL_0222: callvirt instance int32 IFoo::Foo6(int32)
1209 IL_0227: ldc.i4.s 66
1211 IL_022b: ldstr "Calling IFoo.Foo6 on IBlahImpl"
1212 IL_0230: call void Test::Assert(bool,
1217 IL_0238: callvirt instance int32 IFoo::Foo7(int32)
1218 IL_023d: ldc.i4.s 77
1220 IL_0241: ldstr "Calling IFoo.Foo7 on IBlahImpl"
1221 IL_0246: call void Test::Assert(bool,
1226 IL_024e: callvirt instance int32 IFoo::Foo8(int32)
1227 IL_0253: ldc.i4.s 88
1229 IL_0257: ldstr "Calling IFoo.Foo8 on IBlahImpl"
1230 IL_025c: call void Test::Assert(bool,
1235 IL_0265: callvirt instance int32 IFoo::Foo9(int32)
1236 IL_026a: ldc.i4.s 99
1238 IL_026e: ldstr "Calling IFoo.Foo9 on IBlahImpl"
1239 IL_0273: call void Test::Assert(bool,
1244 IL_027b: ldstr "Calling IBar.Bar methods on IBlahImpl..."
1245 IL_0280: call void [mscorlib]System.Console::WriteLine(string)
1249 IL_0288: callvirt instance int32 IBar::Bar1(int32)
1250 IL_028d: ldc.i4.s 111
1252 IL_0291: ldstr "Calling IBar.Bar1 on IBlahImpl"
1253 IL_0296: call void Test::Assert(bool,
1258 IL_029e: callvirt instance int32 IBar::Bar2(int32)
1259 IL_02a3: ldc.i4 0xde
1261 IL_02aa: ldstr "Calling IBar.Bar2 on IBlahImpl"
1262 IL_02af: call void Test::Assert(bool,
1267 IL_02b7: callvirt instance int32 IBar::Bar3(int32)
1268 IL_02bc: ldc.i4 0x14d
1270 IL_02c3: ldstr "Calling IBar.Bar3 on IBlahImpl"
1271 IL_02c8: call void Test::Assert(bool,
1276 IL_02d0: callvirt instance int32 IBar::Bar4(int32)
1277 IL_02d5: ldc.i4 0x1bc
1279 IL_02dc: ldstr "Calling IBar.Bar4 on IBlahImpl"
1280 IL_02e1: call void Test::Assert(bool,
1285 IL_02e9: callvirt instance int32 IBar::Bar5(int32)
1286 IL_02ee: ldc.i4 0x22b
1288 IL_02f5: ldstr "Calling IBar.Bar5 on IBlahImpl"
1289 IL_02fa: call void Test::Assert(bool,
1294 IL_0302: callvirt instance int32 IBar::Bar6(int32)
1295 IL_0307: ldc.i4.s 66
1297 IL_030b: ldstr "Calling IBar.Bar6 on IBlahImpl"
1298 IL_0310: call void Test::Assert(bool,
1303 IL_0318: callvirt instance int32 IBar::Bar7(int32)
1304 IL_031d: ldc.i4.s 77
1306 IL_0321: ldstr "Calling IBar.Bar7 on IBlahImpl"
1307 IL_0326: call void Test::Assert(bool,
1312 IL_032e: callvirt instance int32 IBar::Bar8(int32)
1313 IL_0333: ldc.i4.s 88
1315 IL_0337: ldstr "Calling IBar.Bar8 on IBlahImpl"
1316 IL_033c: call void Test::Assert(bool,
1321 IL_0344: callvirt instance int32 IBar::Bar9(int32)
1322 IL_0349: ldc.i4.s 99
1324 IL_034d: ldstr "Calling IBar.Bar9 on IBlahImpl"
1325 IL_0352: call void Test::Assert(bool,
1329 IL_0359: stloc.s V_4
1330 IL_035b: ldstr "Calling IBlah.Blah methods on IBlahImpl..."
1331 IL_0360: call void [mscorlib]System.Console::WriteLine(string)
1333 IL_0366: ldloc.s V_4
1335 IL_0369: callvirt instance int32 IBlah::Blah1(int32)
1336 IL_036e: ldc.i4.s 111
1338 IL_0372: ldstr "Calling IBlah.Blah1 on IBlahImpl"
1339 IL_0377: call void Test::Assert(bool,
1342 IL_037d: ldloc.s V_4
1344 IL_0380: callvirt instance int32 IBlah::Blah2(int32)
1345 IL_0385: ldc.i4 0x8ae
1347 IL_038c: ldstr "Calling IBlah.Blah1 on IBlahImpl"
1348 IL_0391: call void Test::Assert(bool,
1351 IL_0397: ldloc.s V_4
1353 IL_039a: callvirt instance int32 IBlah::Blah3(int32)
1354 IL_039f: ldc.i4 0xd05
1356 IL_03a6: ldstr "Calling IBlah.Blah1 on IBlahImpl"
1357 IL_03ab: call void Test::Assert(bool,
1361 } // end of method Program::SingleOverride
1363 .method private hidebysig static void MultiOverride() cil managed
1365 // Code size 549 (0x225)
1367 .locals init (class FooBarBlahImpl V_0,
1372 IL_0001: newobj instance void FooBarBlahImpl::.ctor()
1376 IL_0009: ldstr "Calling IFoo.Foo methods on FooBarBlahImpl..."
1377 IL_000e: call void [mscorlib]System.Console::WriteLine(string)
1381 IL_0016: callvirt instance int32 IFoo::Foo1(int32)
1382 IL_001b: ldc.i4 0x2b67
1384 IL_0022: ldstr "Calling IFoo.Foo1 on FooBarBlahImpl"
1385 IL_0027: call void Test::Assert(bool,
1390 IL_002f: callvirt instance int32 IFoo::Foo2(int32)
1391 IL_0034: ldc.i4 0x56ce
1393 IL_003b: ldstr "Calling IFoo.Foo2 on FooBarBlahImpl"
1394 IL_0040: call void Test::Assert(bool,
1399 IL_0048: callvirt instance int32 IFoo::Foo3(int32)
1400 IL_004d: ldc.i4 0x8235
1402 IL_0054: ldstr "Calling IFoo.Foo3 on FooBarBlahImpl"
1403 IL_0059: call void Test::Assert(bool,
1408 IL_0061: callvirt instance int32 IFoo::Foo4(int32)
1409 IL_0066: ldc.i4 0x8235
1411 IL_006d: ldstr "Calling IFoo.Foo4 on FooBarBlahImpl"
1412 IL_0072: call void Test::Assert(bool,
1417 IL_007a: callvirt instance int32 IFoo::Foo5(int32)
1418 IL_007f: ldc.i4 0x8235
1420 IL_0086: ldstr "Calling IFoo.Foo5 on FooBarBlahImpl"
1421 IL_008b: call void Test::Assert(bool,
1426 IL_0093: callvirt instance int32 IFoo::Foo6(int32)
1427 IL_0098: ldc.i4.s 66
1429 IL_009c: ldstr "Calling IFoo.Foo6 on FooBarBlahImpl"
1430 IL_00a1: call void Test::Assert(bool,
1435 IL_00a9: callvirt instance int32 IFoo::Foo7(int32)
1436 IL_00ae: ldc.i4.s 77
1438 IL_00b2: ldstr "Calling IFoo.Foo7 on FooBarBlahImpl"
1439 IL_00b7: call void Test::Assert(bool,
1444 IL_00bf: callvirt instance int32 IFoo::Foo8(int32)
1445 IL_00c4: ldc.i4.s 88
1447 IL_00c8: ldstr "Calling IFoo.Foo8 on FooBarBlahImpl"
1448 IL_00cd: call void Test::Assert(bool,
1453 IL_00d6: callvirt instance int32 IFoo::Foo9(int32)
1454 IL_00db: ldc.i4.s 99
1456 IL_00df: ldstr "Calling IFoo.Foo9 on FooBarBlahImpl"
1457 IL_00e4: call void Test::Assert(bool,
1462 IL_00ec: ldstr "Calling IBar.Bar methods on FooBarBlahImpl..."
1463 IL_00f1: call void [mscorlib]System.Console::WriteLine(string)
1467 IL_00f9: callvirt instance int32 IBar::Bar1(int32)
1468 IL_00fe: ldc.i4 0x2b67
1470 IL_0105: ldstr "Calling IBar.Bar1 on FooBarBlahImpl"
1471 IL_010a: call void Test::Assert(bool,
1476 IL_0112: callvirt instance int32 IBar::Bar2(int32)
1477 IL_0117: ldc.i4 0x56ce
1479 IL_011e: ldstr "Calling IBar.Bar2 on FooBarBlahImpl"
1480 IL_0123: call void Test::Assert(bool,
1485 IL_012b: callvirt instance int32 IBar::Bar3(int32)
1486 IL_0130: ldc.i4 0x8235
1488 IL_0137: ldstr "Calling IBar.Bar3 on FooBarBlahImpl"
1489 IL_013c: call void Test::Assert(bool,
1494 IL_0144: callvirt instance int32 IBar::Bar4(int32)
1495 IL_0149: ldc.i4 0x8235
1497 IL_0150: ldstr "Calling IBar.Bar4 on FooBarBlahImpl"
1498 IL_0155: call void Test::Assert(bool,
1503 IL_015d: callvirt instance int32 IBar::Bar5(int32)
1504 IL_0162: ldc.i4 0x8235
1506 IL_0169: ldstr "Calling IBar.Bar5 on FooBarBlahImpl"
1507 IL_016e: call void Test::Assert(bool,
1512 IL_0176: callvirt instance int32 IBar::Bar6(int32)
1513 IL_017b: ldc.i4.s 66
1515 IL_017f: ldstr "Calling IBar.Bar6 on FooBarBlahImpl"
1516 IL_0184: call void Test::Assert(bool,
1521 IL_018c: callvirt instance int32 IBar::Bar7(int32)
1522 IL_0191: ldc.i4.s 77
1524 IL_0195: ldstr "Calling IBar.Bar7 on FooBarBlahImpl"
1525 IL_019a: call void Test::Assert(bool,
1530 IL_01a2: callvirt instance int32 IBar::Bar8(int32)
1531 IL_01a7: ldc.i4.s 88
1533 IL_01ab: ldstr "Calling IBar.Bar8 on FooBarBlahImpl"
1534 IL_01b0: call void Test::Assert(bool,
1539 IL_01b8: callvirt instance int32 IBar::Bar9(int32)
1540 IL_01bd: ldc.i4.s 99
1542 IL_01c1: ldstr "Calling IBar.Bar9 on FooBarBlahImpl"
1543 IL_01c6: call void Test::Assert(bool,
1548 IL_01ce: ldstr "Calling IBlah.Blah methods on FooBarBlahImpl..."
1549 IL_01d3: call void [mscorlib]System.Console::WriteLine(string)
1553 IL_01db: callvirt instance int32 IBlah::Blah1(int32)
1554 IL_01e0: ldc.i4 0x2b67
1556 IL_01e7: ldstr "Calling IBlah.Blah1 on FooBarBlahImpl"
1557 IL_01ec: call void Test::Assert(bool,
1562 IL_01f4: callvirt instance int32 IBlah::Blah2(int32)
1563 IL_01f9: ldc.i4 0x56ce
1565 IL_0200: ldstr "Calling IBlah.Blah1 on FooBarBlahImpl"
1566 IL_0205: call void Test::Assert(bool,
1571 IL_020d: callvirt instance int32 IBlah::Blah3(int32)
1572 IL_0212: ldc.i4 0x8235
1574 IL_0219: ldstr "Calling IBlah.Blah1 on FooBarBlahImpl"
1575 IL_021e: call void Test::Assert(bool,
1579 } // end of method Program::MultiOverride
1581 .method public hidebysig specialname rtspecialname
1582 instance void .ctor() cil managed
1584 // Code size 8 (0x8)
1587 IL_0001: call instance void [mscorlib]System.Object::.ctor()
1590 } // end of method Program::.ctor
1592 } // end of class Program
1594 .class private auto ansi beforefieldinit Test
1595 extends [mscorlib]System.Object
1597 .field private static bool Pass
1598 .method public hidebysig static int32 Ret() cil managed
1600 // Code size 19 (0x13)
1602 .locals init (int32 V_0)
1604 IL_0001: ldsfld bool Test::Pass
1605 IL_0006: brtrue.s IL_000c
1607 IL_0008: ldc.i4.s 101
1608 IL_000a: br.s IL_000e
1612 IL_000f: br.s IL_0011
1616 } // end of method Test::Ret
1618 .method public hidebysig static void Assert(bool cond,
1619 string msg) cil managed
1621 // Code size 47 (0x2f)
1623 .locals init (bool V_0)
1628 IL_0004: brfalse.s IL_0015
1631 IL_0007: ldstr "PASS"
1632 IL_000c: call void [mscorlib]System.Console::WriteLine(string)
1635 IL_0013: br.s IL_002e
1638 IL_0016: ldstr "FAIL: "
1640 IL_001c: call string [mscorlib]System.String::Concat(string,
1642 IL_0021: call void [mscorlib]System.Console::WriteLine(string)
1645 IL_0028: stsfld bool Test::Pass
1648 } // end of method Test::Assert
1650 .method public hidebysig specialname rtspecialname
1651 instance void .ctor() cil managed
1653 // Code size 8 (0x8)
1656 IL_0001: call instance void [mscorlib]System.Object::.ctor()
1659 } // end of method Test::.ctor
1661 .method private hidebysig specialname rtspecialname static
1662 void .cctor() cil managed
1664 // Code size 7 (0x7)
1667 IL_0001: stsfld bool Test::Pass
1669 } // end of method Test::.cctor
1671 } // end of class Test
1674 // =============================================================
1676 // *********** DISASSEMBLY COMPLETE ***********************
1677 // WARNING: Created Win32 resource file methodimpl.res