コンストラクタ初期化子を使うと、あるコンストラクタから別のコンストラクタを呼ぶことができる。
なお、以下では、C# 4.0で導入されたデフォルトパラメータを使用して、コンストラクタの数を減らしている。
public class MyClass
{
private List<string> _coll;
private string _name;
public MyClass() :
this(0, "")
{
}
public MyClass(int initialCount = 0, string name = "")
{
_coll = (initialCount > 0) ? new List<string>(initialCount) : new List<string>();
_name = name;
}
}
なお、パラメータを必要としないコンストラクタと、全てのパラメータにデフォルト値が設定されたコンストラクタは異なる、という点に注意が必要である。
ジェネリクスで使う場合など、パラメータを必要としないコンストラクタが要求される場面があるため、全てのパラメータにデフォルト値を設定する場合、パラメータなしのコンストラクタも作成したほうがよい。