C#学习小记5 一个有趣的程序关于复载property
//一个有趣的程序关于复载property
using System;
public class Student
{ private string name;
public virtual string Name
{
get {return name;}
set { name =value;}
}
}
public class MakeStudent:Student
{
public override string Name
{
get {return base.Name;} //我发现此处若去掉base.那么程序编译可以成功,但是运行时将会死机!
set { base.Name=value+"hao";} //我发现此处若去掉base.那么程序编译可以成功,但是运行时将会死机!
}
static void Main()
{ Student a=new Student();
a.Name="you";
Console.WriteLine(a.Name);
MakeStudent b=new MakeStudent();
b.Name="me";
Console.WriteLine(b.Name);
}
}
//本来上例的name打算用构造方法初始化的可是发现编译时老是说什么,参数为0
using System;
public class Student
{ public string name;
public Student(string me) //2
{ name=me;
}
}
public class MakeStudent:Student
{ public MakeStudent(string me) //此处报警!说和2处有关,我想可能是子类要同时
//实现向父类的构造方法传递参数!
{ name=me;
}
static void Main()
{ }
}