我最近遇到了这个问题,我想要一个函数来处理双精度和整数,并且想知道为什么没有用于所有数字类型(包含算术运算符和比较)的通用接口。为什么数字类型不共享通用接口?
它会使写作功能如Math.Min
(存在于gazillion重载)方式更方便。
会引入一个额外的接口是一个突破性的变化?
编辑: 我想用这个像
public T Add<T>(T a, T b) where T: INumber
{
return a+b;
}
或
public T Range<T>(T x, T min, T max) where T:INumber
{
return Max(x, Min(x, max), min);
}
@Saeed:那点。 =)我的Add方法只是一个简单的例子。就我而言,我正在对给定数组进行一些基本的统计分析,并且不关心它们是int,double,decimal还是BigIntegers,只要我可以添加它们即可。 (并且不必在许多过载中编写这种方法) – Jens 2010-12-01 08:41:13
https://referencesource.microsoft.com/#mscorlib/system/int32.cs,31 - `IArithmetic`似乎被注释掉,可悲地:( –
Caramiriel
2017-12-08 12:18:08