Bir yapılandırıcının kendinden sonra başka bir yapılandırıcıyı çağırması için C# yapılandırıcılarında yerleşik bir özellik var.
public class Deneme
{
int _x, _y;
public Deneme():this(0, 0)
{
// ....
}
public Deneme(int x, int y)
{
_x = x;
_y = y;
}
}
Bu örnekteki
:this(0, 0) ifadesi ikinci parametreli yapılandırıcıyı 0 ve 0 değerleriyle çağırır. Ancak önce parametreli yapılandırıcı çalışacaktır. Eğer parametresiz birinci yapılandırıcı içinde işlemlerin varsa (// .... olan yerde) onlar daha sonra çalıştırılacaktır.
Eğer bazı işlemler yaptıktan sonra bir yapılandırıcıyı çağırmak gerekirse ayrı bir fonksiyon yazarsın. Her iki yapılandırıcı içinden de duruma göre bu fonksiyonu çağırırsın.
public class Deneme
{
int _x, _y;
public Deneme()
{
// Burada bazı işlemler olabilir.
DenemeYapilandir(0, 0);
}
public Deneme(int x, int y)
{
// Burada da bazı işlemler olabilir.
DenemeYapilandir(x, y);
}
public void DenemeYapilandir(int x, int y)
{
_x = x;
_y = y;
}
}