C# Constructor Chaining
有時Class有多個建構函式時,或許一些初始設定值的Code會重覆到那些建構函式之中,如下,
public class Customer
{
public Customer()
{
AddressList = new List<Address>();
}
public Customer(int id)
{
this.Id = id;
AddressList = new List<Address>();
}
public int Id { get; private set; }
public string Name { get; set; }
public List<Address> AddressList { get; set; }
}
public class Address
{
public int Id { get; set; }
public string AddressLine1 { get; set; }
public string AddressLine2 { get; set; }
}
這時就可以使用 Constructor Chaining 來去除程式碼的重覆,如下,
public class Customer
{
public Customer()
:this(0)
{
}
public Customer(int id)
{
this.Id = id;
AddressList = new List<Address>();
}
public int Id { get; private set; }
public string Name { get; set; }
public List<Address> AddressList { get; set; }
}
Constructor Chaining 可以使用 this 去Call其他的建構函式 或用 base 去Call 父層的建構函式!
參考資料
Hi,
亂馬客Blog已移到了 「亂馬客 : Re:從零開始的軟體開發生活」
請大家繼續支持 ^_^