当前位置:编程学习 > C#/ASP.NET >>

新手求教Base

程序如下,为什么myDerivedClass.GetString()不能返回“Hello”呢,不是调用base.GetString()方法吗?

    class Program
    {
        static void Main(string[] args)
        {
            MyDerivedClass myDerivedClass = new MyDerivedClass();
            MyClass myClass = new MyClass();
            myClass.ContaineString = "Hello";
            Console.WriteLine("{0} from MyDerivedClass.",myDerivedClass.GetString());

            Console.ReadKey();
        }
    }
    public class MyClass
    {
        private string myString;

        public string ContaineString
        {
            set
            {
                myString = value;
            }
        }

        public virtual string GetString()
        {
            return myString;
        }
    }

    class MyDerivedClass:MyClass
    {  
        public override string GetString()
        {
            return base.GetString();
        }
    } --------------------编程问答--------------------
myDerivedClass.ContaineString = "Hello";
--------------------编程问答-------------------- Console.WriteLine("{0} from MyDerivedClass.", myClass.GetString()); --------------------编程问答-------------------- 总之,根本就是2个对象。害我看了半天。 --------------------编程问答-------------------- LS正解 

你有2个实例
那个"Hello"在myClass里

另外
    
//public override string GetString()
    //{
    //    return base.GetString();
    //}

这部分不要 重写一个完全一样的 有必要么 --------------------编程问答-------------------- 还有一种修改方法是:

private static string myString;

让 myString 在所有 MyClass 实例成员之间共享。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,