abstract class MyClass
{
public const int Param1Default = 4;
public const int Param2Default = 10;
int Param1 { get; set; }
int Param2 { get; set; }
public MyClass(int param1 = Param1Default, int param2 = Param2Default)
{
this.Param1 = param1;
this.Param2 = param2;
}
}
class Class1 : MyClass
{
int Param3 { get; set; }
public Class1(int param1 = MyClass.Param1Default, int param2 = MyClass.Param1Default, int param3 = 2)
: base(param1, param2)
{
this.Param3 = param3;
}
}
public class Test
{
public static void Main()
{
var x = new Class1(7);
}
}
YWJzdHJhY3QgY2xhc3MgTXlDbGFzcwp7CiAgcHVibGljIGNvbnN0IGludCBQYXJhbTFEZWZhdWx0ID0gNDsKICBwdWJsaWMgY29uc3QgaW50IFBhcmFtMkRlZmF1bHQgPSAxMDsKCiAgaW50IFBhcmFtMSB7IGdldDsgc2V0OyB9CiAgaW50IFBhcmFtMiB7IGdldDsgc2V0OyB9CgogIHB1YmxpYyBNeUNsYXNzKGludCBwYXJhbTEgPSBQYXJhbTFEZWZhdWx0LCBpbnQgcGFyYW0yID0gUGFyYW0yRGVmYXVsdCkKICB7CiAgICB0aGlzLlBhcmFtMSA9IHBhcmFtMTsKICAgIHRoaXMuUGFyYW0yID0gcGFyYW0yOwogIH0KfQoKY2xhc3MgQ2xhc3MxIDogTXlDbGFzcwp7CiAgaW50IFBhcmFtMyB7IGdldDsgc2V0OyB9CiAgCiAgcHVibGljIENsYXNzMShpbnQgcGFyYW0xID0gTXlDbGFzcy5QYXJhbTFEZWZhdWx0LCBpbnQgcGFyYW0yID0gTXlDbGFzcy5QYXJhbTFEZWZhdWx0LCBpbnQgcGFyYW0zID0gMikKICA6IGJhc2UocGFyYW0xLCBwYXJhbTIpCiAgewogICAgdGhpcy5QYXJhbTMgPSBwYXJhbTM7CiAgfQp9CgpwdWJsaWMgY2xhc3MgVGVzdAp7CiAgcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQogIHsKICAgIHZhciB4ID0gbmV3IENsYXNzMSg3KTsKICB9Cn0=