.assembly extern 'mscorlib' { .ver 0:0:0:0 } .assembly '' { .ver 0:0:0:0 } .module '' .class public auto ansi 'XYZ' extends ['mscorlib']'System'.'Object' { .method public static hidebysig void 'printf'(char[] 'args') cil managed { .param[1] .custom instance void ['mscorlib']'System'.'ParamArrayAttribute'::'.ctor'() = (01 00 00 00) ldarg.0 brtrue ?L1 ldstr "It worked" call void ['mscorlib']'System'.'Console'::'WriteLine'(class ['mscorlib']'System'.'String') ?L1: ret .maxstack 1 } // method printf .method public static hidebysig void 'oprintf'(class ['mscorlib']'System'.'Object'[] 'args') cil managed { .param[1] .custom instance void ['mscorlib']'System'.'ParamArrayAttribute'::'.ctor'() = (01 00 00 00) ldarg.0 brtrue ?L2 ldstr "It failed" call void ['mscorlib']'System'.'Console'::'WriteLine'(class ['mscorlib']'System'.'String') ?L2: ret .maxstack 1 } // method oprintf .method public static hidebysig void 'Main'() cil managed { ldnull call void 'XYZ'::'printf'(char[]) ldc.i4.1 newarr ['mscorlib']'System'.'Object' dup ldc.i4.0 ldnull stelem.ref call void 'XYZ'::'oprintf'(class ['mscorlib']'System'.'Object'[]) ret .maxstack 4 } // method Main .method public hidebysig specialname rtspecialname instance void '.ctor'() cil managed { ldarg.0 call instance void ['mscorlib']'System'.'Object'::'.ctor'() ret .maxstack 1 } // method .ctor } // class XYZ