2011-08-08 129 views
-2

如何解决无错误代码的错误?在C中调用覆盖构造函数和基址#

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

什么问题了吗? – 2011-08-08 23:52:14

+0

也许你会详细说明你想修复的特定冗余......? (我假设你希望既能调用基类构造函数也能调用同一类中的另一个构造函数) – Reddog

+0

当然Reddog –

回答

2

我认为你唯一的选择是要做到这一点:

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

有时,多次写入相同的代码是最好的选择,尤其是当它很简单时。

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