使用this转发构造函数调用
this关键字的其中一个用处是,强制一个构造函数调用另一个构造函数,以避免冗余的成员初始化逻辑。考虑下面对Employee类的修改:
public class Employee { public Employee(string fullName, int empID, float currPay) { this.fullName = fullName; this.empID = empID; this.currPay = currPay; } public Employee(string fullName) : this(fullName, IDGenerator.GetNewEmpID(), 0.0F) { } }
Employee类的这个版本定义了两个构造函数,其中第二个只需要一个参数(雇员的姓名)。然而,为了完全构建一个新的Employee,需要保证有一个有效的ID(empID)和工资(currPay)。假设已经创建了自定义类(IDGenerator),它定义了名为GetNewEmpID()的静态方法,那么就可以生成一个新的雇佣ID。一旦获得了正确的初始参数集合,可以将创建请求转发到相应的带三个参数的构造函数。
如果不转发调用,需要为每一个构造函数添加冗余的代码:
public Employee(string fullName) { this.fullName = fullName; this.empID = IDGenerator.GetNewEmpID();
}

浙公网安备 33010602011771号