当前位置: 代码迷 >> .NET面试 >> c#派生类的构造函数有关问题
  详细解决方案

c#派生类的构造函数有关问题

热度:4413   发布时间:2013-02-25 00:00:00.0
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 是调用父类构造函数。
  相关解决方案