查看UML图像。我有一个名为BinaryProblem的泛型类,这个类接收两个T值,int long,decimal。但我决定添加一个新的,Fraction类。
假设我有一个名为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()== ...)但是,我确定以后我会添加其他类型,并避免重复一些代码。
我几乎忘了它,可以在类型通用的地方添加数字吗?
答案 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);
}
}