using System;
namespace ThisConstructor
{
class MyClass
{
int a, b, c;
public MyClass()
{
this.a = 10;
}
public MyClass(int b) : this()
{
this.b = 20;
}
public MyClass(int b, int c) : this(b)
{
this.c = 30;
}
public void PrintFields()
{
Console.WriteLine("a:{0}, b:{1}, c:{2}", a, b, c);
}
}
class MainApp
{
static void Main(string[] args)
{
MyClass a = new MyClass();
a.PrintFields();
MyClass b = new MyClass(0);
b.PrintFields();
MyClass c = new MyClass(0, 0);
c.PrintFields();
}
}
}
dXNpbmcgU3lzdGVtOwoKbmFtZXNwYWNlIFRoaXNDb25zdHJ1Y3Rvcgp7CiAgICBjbGFzcyBNeUNsYXNzCiAgICB7CiAgICAgICAgaW50IGEsIGIsIGM7CgogICAgICAgIHB1YmxpYyBNeUNsYXNzKCkKICAgICAgICB7CiAgICAgICAgICAgIHRoaXMuYSA9IDEwOwogICAgICAgIH0KCiAgICAgICAgcHVibGljIE15Q2xhc3MoaW50IGIpIDogdGhpcygpCiAgICAgICAgewogICAgICAgICAgICB0aGlzLmIgPSAyMDsKICAgICAgICB9CgogICAgICAgIHB1YmxpYyBNeUNsYXNzKGludCBiLCBpbnQgYykgOiB0aGlzKGIpCiAgICAgICAgewogICAgICAgICAgICB0aGlzLmMgPSAzMDsKICAgICAgICB9CgogICAgICAgIHB1YmxpYyB2b2lkIFByaW50RmllbGRzKCkKICAgICAgICB7CiAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCJhOnswfSwgYjp7MX0sIGM6ezJ9IiwgYSwgYiwgYyk7CiAgICAgICAgfQogICAgfQoKICAgIGNsYXNzIE1haW5BcHAKICAgIHsKICAgICAgICBzdGF0aWMgdm9pZCBNYWluKHN0cmluZ1tdIGFyZ3MpCiAgICAgICAgewogICAgICAgICAgICBNeUNsYXNzIGEgPSBuZXcgTXlDbGFzcygpOwogICAgICAgICAgICBhLlByaW50RmllbGRzKCk7CgogICAgICAgICAgICBNeUNsYXNzIGIgPSBuZXcgTXlDbGFzcygwKTsKICAgICAgICAgICAgYi5QcmludEZpZWxkcygpOwoKICAgICAgICAgICAgTXlDbGFzcyBjID0gbmV3IE15Q2xhc3MoMCwgMCk7CiAgICAgICAgICAgIGMuUHJpbnRGaWVsZHMoKTsKICAgICAgICB9CiAgICB9Cn0=