类A.cs
public class A
{
   protected virtual Msg()
   {
     
   }
}public class B:A
{
   protected override Msg()
   {
     base.Msg();
   }
}
public class C:B
{
   protected [这里应该用什么关键字] Msg()
   {
     base.Msg();
   }
}
public class D
{
   public Method1()
  {
     C c=new C();
       c.Msg();
   }}最好不要让编译器产生警告
想要达到的效果是,在类D的Method1方法中实例化 C类的一个对象“c”,调用“c”对象的Msg();方法时
其所有基类和本身的Msg方法全部被调用。

解决方案 »

  1.   


        public class A
        {
            public virtual void Msg()
            {
                Console.WriteLine("A");
            }
        }    public class B : A
        {
            public override void Msg()
            {
                base.Msg();
                Console.WriteLine("B");
            }
        }
        public class C : B
        {
            public override void Msg()
            {
                base.Msg();
                Console.WriteLine("C");
            }
        }
        public class D
        {
            public void Method1()
            {
                C c = new C();
                c.Msg();
            }    }