c#派生类的构造函数问题。
public abstract class GenericCustomer
{
private string name;
public GenericCustomer()
{
name = "<no name>";
}
public GenericCustomer(string name)
{
this.name = name;
}
public string Name
{
get { return name; }
set { name = value; }
}
}
public class Nevermore60Customer : GenericCustomer
{
private string referrerName;
private uint highCostMinutesUsed;
public Nevermore60Customer(string name)
: this(name, "<None>")
{
}
public Nevermore60Customer(string name, string referrerName)
: base(name)
{
this.referrerName = referrerName;
}
public string ReferrerName
{
get { return referrerName; }
set { referrerName = value; }
}
}
这一条
public Nevermore60Customer(string name, string referrerName)
: base(name)
base(name)是不把name传递给基类的构造函数啊?如果要把referrerName也传到基类
是不是要这样写呢public Nevermore60Customer(string name, string referrerName)
: base(name,referrerName)
如果是这样那这个
public Nevermore60Customer(string name)
: this(name, "<None>")
{
}
是什么情况啊。这个name能传到基类吗?
this是什么情况啊。还有这个函数只有一个参数name
那<none>是不是就可以看成空气啊。书上我看了很多遍了,没看懂,来这里求大神。。
------解决方案--------------------this 是调用自身的另一个构造函数重载。
base 是调用父类构造函数。