class A{
test(){
}
}
class B :A{
override test(){
base.test();//调用A.test()
}
}
class C:B{
override test(){
*****//重写B的test()部分逻辑,后面部分保持不变
base.test();//即此处应该是调用A.test(),但是实际调用的是B.test()
}
}
想问:如何在Class C中调到A.test()
class A{
test(){
}
}
class B :A{
override test(){
base.test();//调用A.test()
}
}
class C:B{
override test(){
*****//重写B的test()部分逻辑,后面部分保持不变
base.test();//即此处应该是调用A.test(),但是实际调用的是B.test()
}
}
想问:如何在Class C中调到A.test()
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Q1064866
{
class A
{
public virtual void test()
{
Console.WriteLine("a.test");
}
}
class B : A
{
public override void test()
{
Console.WriteLine("b.test");
base.test();
}
}
class C : B
{
public override void test()
{
Console.WriteLine("c.test");
var ptr = typeof(A).GetMethod("test").MethodHandle.GetFunctionPointer();
var atest = (Action)Activator.CreateInstance(typeof(Action), this, ptr);
atest();
}
}
class Program
{
static void Main(string[] args)
{
C c = new C();
c.test();
}
}
}