C#数字基类

Ken*_*Ken 7 c# polymorphism numbers

我想写一个可以接受任何数字的C#方法.就像是:

public static T Sum(T a, T b) where T : number {  // (not real code)
    return a + b;
}
Run Code Online (Sandbox Code Playgroud)

但我没有在C#中看到一个"数字"基类,就像我用过的大多数其他语言一样.数值类型是IComparable,IFormattable,IConvertible,IComparable和IEquatable,但似乎没有任何算术功能.它们都是结构,除了物体外没有明显的共同超类.(请原谅我,如果我搞砸了这里的意思,因为我不太熟悉C#结构,而且正是他们对类的所有方式都不太熟悉.)

我是否遗漏了某些内容,或者是否无法在C#中编写一个执行"a + b"的方法而不在"+"的上下文中明确指出a和b是什么?

Pie*_*ant 4

您将不得不诉诸使用重载。有点像该类Math对函数所做的那样,Math.Max它支持所有数字类型。

CD提出的链接也很足智多谋