📄 virt_not.il
字号:
.assembly extern mscorlib { }
.assembly virt_not { }
.module virt_not.exe
.class public A
{
.method public specialname void .ctor() { ret }
.method public void Foo()
{
ldstr "A::Foo"
call void [mscorlib]System.Console::WriteLine(string)
ret
}
.method public virtual void Bar()
{
ldstr "A::Bar"
call void [mscorlib]System.Console::WriteLine(string)
ret
}
.method public virtual void Baz()
{
ldstr "A::Baz"
call void [mscorlib]System.Console::WriteLine(string)
ret
}
}
.class public B extends A
{
.method public specialname void .ctor() { ret }
.method public void Foo()
{
ldstr "B::Foo"
call void [mscorlib]System.Console::WriteLine(string)
ret
}
.method public virtual void Bar()
{
ldstr "B::Bar"
call void [mscorlib]System.Console::WriteLine(string)
ret
}
.method public virtual newslot void Baz()
{
ldstr "B::Baz"
call void [mscorlib]System.Console::WriteLine(string)
ret
}
}
.method public static void Exec()
{
.entrypoint
newobj instance void B::.ctor() // create instance of derived class
castclass class A // cast it to base class
dup // we need 3 instance pointers
dup // on stack for 3 calls
call instance void A::Foo()
callvirt instance void A::Bar()
callvirt instance void A::Baz()
ret
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -