新手求教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#