在.Net中有这样的界面吗?
公共接口IOperable< T>{
T Add(T add); T Substract(T subs); T Multiply(T mult); T除以(T div); //等等}管理……
“不”。
如果它发生了,它几乎肯定不会通过接口,但是:通过通用运算符约束支持。
接口存在一些语义问题:并非所有数字系统都实现所有相同的运算符 - 并且结果并不总是相同的(例如,向量/矩阵的除法和乘法;或者:您可以添加和减去两个 TimeSpan s,但你不能乘以或除以它们等);甚至当他们这样做时:意义可以改变(整数除法与浮点除法不同,减法和否定对于无符号数据类型变得奇怪)。
TimeSpan
通用运算符约束已经讨论了几次,但从未使它成为语言。
你可以作弊 dynamic ,但这涉及“拳击”,所以有一些非平凡的开销。或者内置了一些通用的运营商服务 MiscUtil 。
dynamic