如何检查两种类型是否可以比较,总结等?

Mar*_*cus 7 c# iconvertible

如果给出两种类型(类型a,类型b),是否有任何"好"的方法来确定这两个是否可以进行比较,求和等?

我在想如果类型实现IConvertible,可以将两者都转换成让我们说十进制并执行" Convert.ToDecimal(a) > Convert.ToDecimal(b)"?

我正在构建一个表达式求值程序,并希望能够处理任何类型的对象,因此需要知道一个类型是否可以与另一个类型进行比较(它不必在两侧都是相同的类型.例如.double > int)

小智 1

是否可以添加类型取决于编程语言的绑定规则。特别是隐式转换和重载解析。

从 .net 3.5 开始,有“Expression”类和相关的辅助类可以做到这一点。 .NET泛型中重载运算符约束的解决方案