C# 在C中调用重写构造函数和基#
如何在没有冗余代码的情况下修复此错误C# 在C中调用重写构造函数和基#,c#,C#,如何在没有冗余代码的情况下修复此错误 public Comparison2(decimal number1, decimal number2) : base() { this.Number1 = number1; this.Number2 = number2; } public Comparison2(decimal number1, decimal number2, int problemNumber, int subject,
public Comparison2(decimal number1, decimal number2) : base()
{
this.Number1 = number1;
this.Number2 = number2;
}
public Comparison2(decimal number1, decimal number2, int problemNumber, int subject, int seconds)
: this(number1, number2), base(problemNumber, subject, seconds) { }
有时候,多次编写相同的代码是最好的选择,尤其是在这么简单的情况下
但是,如果您确实希望避免重复自己的代码,或者如果您的实际代码更复杂,那么您可以创建一个方法来包含代码。这种方法的一个缺点是不能在构造函数之外设置
只读字段。我认为您唯一的选择是:
public Comparison2(decimal number1, decimal number2) : base()
{
this.SetNumbers(number1, number2);
}
public Comparison2(decimal number1, decimal number2, int problemNumber,
int subject, int seconds)
: base(problemNumber, subject, seconds)
{
this.SetNumbers(number1, number2);
}
private void SetNumbers(decimal number1, decimal number2)
{
this.Number1 = number1;
this.Number2 = number2;
}
也许你可以详细说明一下你想解决的特定冗余问题。。。?(我假设您希望能够同时调用基本构造函数和同一类中的另一个构造函数)当您发布代码时,不能说“当然”而不做任何解释。@Rob抱歉我的英语不好,我的意思是说“你是对的”或“这就是重点”。