我试图找到一种方法来创建仅用于数字类型的通用类,以进行一些计算。
我缺少所有数字类型(int,double,float …)的通用接口吗???
如果没有,那么创建此类的最佳方法是什么?
更新:
我要实现的主要目的是检查谁是两个T类型变量之间的较大者。
您正在使用什么版本的.NET?如果您使用的是.NET 3.5,那么我在MiscUtil(免费等)中有一个通用的运算符实现。
它具有T Add<T>(T x, T y),和类似的方法,以及用于对不同类型(如DateTime + TimeSpan)进行算术运算的其他变量。
T Add<T>(T x, T y)
DateTime + TimeSpan
此外,这适用于所有内置,提升和定制的操作员,并缓存代表以提高性能。
为什么这是棘手的一些其他背景在这里。
您可能还想知道dynamic(4.0)排序也间接解决了此问题-即
dynamic
dynamic x = ..., y = ... dynamic result = x + y; // does what you expect
重新对评论</ >-你实际上并不 需要 为这个运营商; 您只需:
<
>
T x = ..., T y = ... int c = Comparer<T>.Default.Compare(x,y); if(c < 0) { // x < y } else if (c > 0) { // x > y }