在c#中调用重写构造函数和基函数

本文关键字:构造函数 基函数 重写 调用 | 更新日期: 2023-09-27 18:04:56

如何在没有冗余代码的情况下修复此错误?

    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) { }

在c#中调用重写构造函数和基函数

有时,多次编写相同的代码是最好的选择,特别是当它如此简单时。

但是如果你真的想避免重复,或者如果你的实际代码更复杂,你可以创建一个方法来包含这些代码。这种方法的一个缺点是不能在构造函数之外设置readonly字段。

我认为你唯一的选择是这样做:

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;
}