我最近遇到了這個問題,我想要一個函數來處理雙精度和整數,並且想知道爲什麼沒有用於所有數字類型(包含算術運算符和比較)的通用接口。爲什麼數字類型不共享通用接口?
它會使寫作功能如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