Skip to content

Instantly share code, notes, and snippets.

@HaloFour
Created February 12, 2015 02:55
Show Gist options
  • Save HaloFour/184cb0a58f71d3684427 to your computer and use it in GitHub Desktop.
Save HaloFour/184cb0a58f71d3684427 to your computer and use it in GitHub Desktop.
Covariant Overrides
// Microsoft (R) .NET Framework IL Disassembler. Version 4.0.30319.33440
// Copyright (c) Microsoft Corporation. All rights reserved.
// Metadata version: v4.0.30319
.assembly extern mscorlib
{
.publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
.ver 4:0:0:0
}
.assembly Project3
{
.custom instance void [mscorlib]System.Runtime.Versioning.TargetFrameworkAttribute::.ctor(string) = ( 01 00 1C 2E 4E 45 54 46 72 61 6D 65 77 6F 72 6B // ....NETFramework
2C 56 65 72 73 69 6F 6E 3D 76 34 2E 35 2E 31 01 // ,Version=v4.5.1.
00 54 0E 14 46 72 61 6D 65 77 6F 72 6B 44 69 73 // .T..FrameworkDis
70 6C 61 79 4E 61 6D 65 14 2E 4E 45 54 20 46 72 // playName..NET Fr
61 6D 65 77 6F 72 6B 20 34 2E 35 2E 31 ) // amework 4.5.1
.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 Project3.dll
// MVID: {E9C65A92-0C9A-42FC-A0FE-F30788C270A3}
.imagebase 0x10000000
.file alignment 0x00000200
.stackreserve 0x00100000
.subsystem 0x0003 // WINDOWS_CUI
.corflags 0x00000001 // ILONLY
// Image base: 0x01210000
// =============== CLASS MEMBERS DECLARATION ===================
.class public auto ansi beforefieldinit N.C1
extends [mscorlib]System.Object
{
.method public hidebysig newslot virtual
instance object M1() cil managed
{
// Code size 11 (0xb)
.maxstack 1
.locals init (object V_0)
IL_0000: nop
IL_0001: ldstr "Hello"
IL_0006: stloc.0
IL_0007: br.s IL_0009
IL_0009: ldloc.0
IL_000a: ret
} // end of method C1::M1
.method public hidebysig newslot virtual
instance object M2() cil managed
{
// Code size 12 (0xc)
.maxstack 1
.locals init (object V_0)
IL_0000: nop
IL_0001: ldc.i4.1
IL_0002: box [mscorlib]System.Int32
IL_0007: stloc.0
IL_0008: br.s IL_000a
IL_000a: ldloc.0
IL_000b: ret
} // end of method C1::M2
.method public hidebysig newslot virtual
instance object M3() cil managed
{
// Code size 11 (0xb)
.maxstack 1
.locals init (object V_0)
IL_0000: nop
IL_0001: ldstr "Hello"
IL_0006: stloc.0
IL_0007: br.s IL_0009
IL_0009: ldloc.0
IL_000a: ret
} // end of method C1::M3
.method public hidebysig newslot virtual
instance object M4() cil managed
{
// Code size 12 (0xc)
.maxstack 1
.locals init (object V_0)
IL_0000: nop
IL_0001: ldc.i4.1
IL_0002: box [mscorlib]System.Int32
IL_0007: stloc.0
IL_0008: br.s IL_000a
IL_000a: ldloc.0
IL_000b: ret
} // end of method C1::M4
.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 C1::.ctor
} // end of class N.C1
.class public auto ansi beforefieldinit N.C2
extends N.C1
{
.method private hidebysig virtual final
instance object M1_hidden() cil managed
{
.override N.C1::M1
// Code size 10 (0xa)
.maxstack 1
.locals init (object V_0)
IL_0000: nop
IL_0001: ldarg.0
IL_0002: tail.
IL_0004: callvirt instance class [mscorlib]System.IConvertible N.C2::M1()
IL_0009: ret
} // end of method C2::M1_hidden
.method public hidebysig newslot virtual
instance class [mscorlib]System.IConvertible
M1() cil managed
{
// Code size 11 (0xb)
.maxstack 1
.locals init (class [mscorlib]System.IConvertible V_0)
IL_0000: nop
IL_0001: ldstr "hello"
IL_0006: stloc.0
IL_0007: br.s IL_0009
IL_0009: ldloc.0
IL_000a: ret
} // end of method C2::M1
.method private hidebysig virtual final
instance object M2_hidden() cil managed
{
.override N.C1::M2
// Code size 10 (0xa)
.maxstack 1
.locals init (object V_0)
IL_0000: nop
IL_0001: ldarg.0
IL_0002: tail.
IL_0004: callvirt instance class [mscorlib]System.IEquatable`1<int32> N.C2::M2()
IL_0009: ret
} // end of method C2::M2_hidden
.method public hidebysig newslot virtual
instance class [mscorlib]System.IEquatable`1<int32>
M2() cil managed
{
// Code size 12 (0xc)
.maxstack 1
.locals init (class [mscorlib]System.IEquatable`1<int32> V_0)
IL_0000: nop
IL_0001: ldc.i4.1
IL_0002: box [mscorlib]System.Int32
IL_0007: stloc.0
IL_0008: br.s IL_000a
IL_000a: ldloc.0
IL_000b: ret
} // end of method C2::M2
.method public hidebysig virtual instance object
M3() cil managed
{
// Code size 11 (0xb)
.maxstack 1
.locals init (object V_0)
IL_0000: nop
IL_0001: ldstr "hello"
IL_0006: stloc.0
IL_0007: br.s IL_0009
IL_0009: ldloc.0
IL_000a: ret
} // end of method C2::M3
.method public hidebysig virtual instance object
M4() cil managed
{
// Code size 12 (0xc)
.maxstack 1
.locals init (object V_0)
IL_0000: nop
IL_0001: ldc.i4.1
IL_0002: box [mscorlib]System.Int32
IL_0007: stloc.0
IL_0008: br.s IL_000a
IL_000a: ldloc.0
IL_000b: ret
} // end of method C2::M4
.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 N.C1::.ctor()
IL_0006: ret
} // end of method C2::.ctor
} // end of class N.C2
.class public auto ansi beforefieldinit N.C3
extends N.C2
{
.method private hidebysig virtual final
instance class [mscorlib]System.IConvertible
M1_hidden() cil managed
{
.override N.C2::M1
// Code size 10 (0xa)
.maxstack 1
.locals init (class [mscorlib]System.IConvertible V_0)
IL_0000: nop
IL_0001: ldarg.0
IL_0002: tail.
IL_0004: callvirt instance string N.C3::M1()
IL_0009: ret
} // end of method C3::M1_hidden
.method public hidebysig newslot virtual
instance string M1() cil managed
{
// Code size 11 (0xb)
.maxstack 1
.locals init (string V_0)
IL_0000: nop
IL_0001: ldstr "hello"
IL_0006: stloc.0
IL_0007: br.s IL_0009
IL_0009: ldloc.0
IL_000a: ret
} // end of method C3::M1
.method private hidebysig virtual final
instance class [mscorlib]System.IEquatable`1<int32>
M2_hidden() cil managed
{
// Code size 17 (0x11)
.maxstack 1
.locals init (class [mscorlib]System.IEquatable`1<int32> V_0)
IL_0000: nop
IL_0001: ldarg.0
IL_0002: callvirt instance int32 N.C3::M2()
IL_0007: box [mscorlib]System.Int32
IL_000c: stloc.0
IL_000d: br.s IL_000f
IL_000f: ldloc.0
IL_0010: ret
} // end of method C3::M2_hidden
.method public hidebysig newslot virtual
instance int32 M2() cil managed
{
// Code size 7 (0x7)
.maxstack 1
.locals init (int32 V_0)
IL_0000: nop
IL_0001: ldc.i4.1
IL_0002: stloc.0
IL_0003: br.s IL_0005
IL_0005: ldloc.0
IL_0006: ret
} // end of method C3::M2
.method public hidebysig virtual instance object
M3() cil managed
{
// Code size 11 (0xb)
.maxstack 1
.locals init (object V_0)
IL_0000: nop
IL_0001: ldstr "string"
IL_0006: stloc.0
IL_0007: br.s IL_0009
IL_0009: ldloc.0
IL_000a: ret
} // end of method C3::M3
.method public hidebysig virtual instance object
M4() cil managed
{
// Code size 12 (0xc)
.maxstack 1
.locals init (object V_0)
IL_0000: nop
IL_0001: ldc.i4.1
IL_0002: box [mscorlib]System.Int32
IL_0007: stloc.0
IL_0008: br.s IL_000a
IL_000a: ldloc.0
IL_000b: ret
} // end of method C3::M4
.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 N.C2::.ctor()
IL_0006: ret
} // end of method C3::.ctor
} // end of class N.C3
// =============================================================
// *********** DISASSEMBLY COMPLETE ***********************
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment