次の ILAsm コードがあるとします。
.class public interface abstract ITest
{
.field public static int32 counter
.method public static void StaticMethod(string str)
{
ldarg.0
call void [mscorlib]System.Console::WriteLine(string)
ret
}
.method public virtual abstract void InstMethod(string) { }
}
ITest
このインターフェイスを実装するクラスを C# で定義することは可能ですか?
このインターフェイスを ILAsm に実装できます。
.class public TestImpl extends [mscorlib]System.Object implements ITest
{
.method public virtual void InstMethod(string str)
{
ldarg.1
call void ITest::StaticMethod(string)
ret
}
.method public specialname rtspecialname instance void .ctor()
{
ldarg.0
call instance void .base::.ctor()
ret
}
}
C# コードで実装されたクラスを正常に使用します。
var testImpl = new TestImpl();
testImpl.InstMethod("I'm static!");
しかし、C# でこのインターフェイスを実装するにはどうすればよいでしょうか。