C#-子类重写的问题????

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();
        }
    }
}

C c = new C();
(c as A).test();