110,533
社区成员
发帖
与我相关
我的任务
分享
namespace ClassLibrary1
{
public abstract class HelloBase
{
protected internal abstract void SayHello();
}
}
public class HelloClass : ClassLibrary1.HelloBase
{
protected override void SayHello()
{
Console.WriteLine("Hello");
}
}
public class HelloClass : ClassLibrary1.HelloBase
{
protected internal override void SayHello()
{
Console.WriteLine("Hello");
}
}
public class Hello : ClassLibrary1.HelloBase
{
protected override void SayHello()
{
}
internal void SayHelloInternal() //<---
{
this.SayHello();
}
}
//
// hello.il
// 编译命令:ilasm /dll hello.il
// 需要当前目录有程序集ClassLibrary1.dll
//
.assembly extern ClassLibrary1{}
.assembly extern mscorlib
{
.publickeytoken = (B7 7A 5C 56 19 34 E0 89 )
.ver 2:0:0:0
}
.assembly ClassLibrary2{}
.module ClassLibrary2.dll
.subsystem 0x0003 // WINDOWS_CUI
.corflags 0x00000001 // ILONLY
.class public auto ansi beforefieldinit Hello
extends [ClassLibrary1]ClassLibrary1.HelloBase
{
.method famorassem hidebysig virtual instance void
SayHello() cil managed
{
ret
}
.method public hidebysig specialname rtspecialname
instance void .ctor() cil managed
{
ldarg.0
call instance void [ClassLibrary1]ClassLibrary1.HelloBase::.ctor()
ret
}
}