abstract class MyClass
{
int Param1 {get; set;}
int Param2 {get; set;}
MyClass(int param1 = 4, int param2 = 10)
{
this.Param1 = param1;
this.Param2 = param2;
}
}
class Class1 : MyClass //переопределяю значения по-умолчанию
{
int Param3 {get; set;}
Class1(int param1 = 4, int param2 = 10, int param3 = 2):base(param1, param2)
{
this.Param3 = param3;
}
}
需要在子类中做可选参数,不重复参数中常量的设置
;如果调用时不指定参数,则取自父构造函数
通过制作可选参数可以手动实现类似的行为:
public Class1(int param1, int param2, int param3 = 2):base(param1, param2)
{
this.Param3 = param3;
}
public Class1(int param1, int param3 = 2):base(param1: param1)
{
this.Param3 = param3;
}
public Class1(int param3 = 2):base()
{
this.Param3 = param3;
}
我认为没有比这更好的方法了:https ://ideone.com/R4imt8
您可以将参数设为可为空的类型: