0
我有一个超类,它有一堆变量。 例如来自超类的强制变量被分配(编译时)
string s1= ""; string s2= ""; string s3= "";
...等
我想保证这些变量得到从这个超类继承,在编译时子重写(指派一些有用的东西)。
是否有这样做的elegent方式?
我有一个超类,它有一堆变量。 例如来自超类的强制变量被分配(编译时)
string s1= ""; string s2= ""; string s3= "";
...等
我想保证这些变量得到从这个超类继承,在编译时子重写(指派一些有用的东西)。
是否有这样做的elegent方式?
让基类的所有构造函数把它们作为参数,并从这些构造函数设置它们:
protected BaseClass(string s1, string s2, string s3)
{
this.s1 = s1;
this.s2 = s2;
this.s3 = s3;
}
...
// Just for example
public DerivedClass(string x) : base("foo", "bar", x)
{
}
希望他们反正是私人领域,所以派生类无法直接设置它们,对吧? :)
在C#中不能有虚拟字段。如果你真的需要这个,你可以使用你重写的属性,并在你的子类中给出一个默认值。
public class A
{
private string s1;
public virtual string S1
{
get { return this.s1; }
}
}
public class B : A
{
private string myString = "default";
public override string S1
{
get
{
return this.myString;
}
}
}
乔恩,多少“你只是打赌我”。你一天得到的评论?就是想 :) 。 。 。 – 2009-02-26 12:01:25