是否可以添加一些“ where”类型的约束来使下面的代码编译?
public class Plus<T> : BinaryOperator<T> where T : ... { public override T Evaluate(IContext<T> context) { return left.Evaluate(context) + right.Evaluate(context); } }
谢谢 :)
C#中没有此类设备。但是,有一些可用的选项:
dynamic
+
Operator
所以:
return (dynamic)left.Evaluate(context) + (dynamic)right.Evaluate(context);
要么
return Operator.Add(left.Evaluate(context), right.Evaluate(context));