可以添加运算符一个类吗?

时间:2012-01-21 05:15:42

标签: c#

查看UML图像。我有一个名为BinaryProblem的泛型类,这个类接收两个T值,int long,decimal。但我决定添加一个新的,Fraction类。

enter image description here

假设我有一个名为Add,Substract,Multiplicate和Division的方法。我想做这样的事情。

var a = new Fraction(1 / 2);
var b = new Fraction(3 / 4);
var c = a + b;  // Fraction { Numerator = 5, Denominator = 4 } 

我知道只能放一个条件,if(x.GetType()== ...)但是,我确定以后我会添加其他类型,并避免重复一些代码。

我几乎忘了它,可以在类型通用的地方添加数字吗?

1 个答案:

答案 0 :(得分:3)

听起来您正在尝试将operator +添加到Fraction类型。如果是这样,请尝试以下

class Fraction { 
  public static Fraction operator+(Fraction left, Fraction right) {
    return left.Add(right);
  }

  public static Fraction operator+(Fraction left, int right) {
    var right = new Fraction(right);
    return left.Add(right);
  }
}