回 帖 发 新 帖 刷新版面

主题:基类的函数里如何使用派生类的成员

/*如题,问题在代码的注释里*/
using System;
using System.Collections.Generic;
using System.Text;

namespace temp
{
    class A
    {
        public string str = "a";
        public void F(A a)
        {
            //我希望此处打印出来的是"b",应该怎样把派生类的成员传过来呢
            Console.WriteLine(a.str);
        }
    }
    class B:A
    {
        public new string str = "b";
        public new void F()
        {
            base.F(this);
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            B b = new B();
            b.F();
        }
    }
}

回复列表 (共1个回复)

沙发

/*哈哈,解决了,代码如下*/
using System;
using System.Collections.Generic;
using System.Text;

namespace temp
{
    class A
    {
        public string str = "a";
        public void F()
        {
            //我希望此处打印出来的是"b",应该怎样把派生类的成员传过来呢
            Console.WriteLine(this.str);
        }
    }
    class B:A
    {
        public new string str = "b";
        public new void F()
        {
            base.str = str;
            base.F();
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            B b = new B();
            b.F();
        }
    }
}

我来回复

您尚未登录,请登录后再回复。点此登录或注册