使用Base控制基类的创建

假设已经给Manager类型增加了6个参数的构造函数,它的代码为:

static void Main(string[] args)
{
      Manager chucky = new Manager("Chucky", 35, 92, 100000, "333-23-2322", 9000);
}

如果看一下参数列表,能清楚地看到这些参数中的大多数都应当存储在Employee基类定义的成员变量中。为此,可以如下所示实现新的构造函数。

public Manager(string fullName, int age, int empID, float currPay, string ssn, ulong numbOfOpts)
{
      numberOfOptions = numbOfOpts;
      ID = empID;
      Age = age;
      Name = fullName;
      SocialSecurityNumber = ssn;
      Pay = currPay;
}

尽量这在技术上是可行的,但是不理想。在C#中,除非另外指定,基类的默认构造函数是在执行派生类构造函数之前调用的。这样,在创建派生类对象的过程中就进行了冗余的调用请求(基类和派生类的属性被重复初始化)。
为了优化派生类的创建,应该显示的调用一个基类构造函数来实现派生类构造函数。用这种方式,可以减少调用继承初始化成员的次数,节省了时间。我们将代码修改为:

public Manager(string fullName, int age, int empID, float curPay, 
         string ssn, ulong numbOfOpt)
    : base(fullName, age, empID, currPay, ssn) { numberOfOptions = numbOfOpts; }

 

posted @ 2013-04-28 11:49  SogetsuKazama  阅读(205)  评论(0)    收藏  举报