任意の数値を受け入れることができるC#メソッドを記述したいと思います。次のようなものがあります:C#数値ベースクラス
public static T Sum(T a, T b) where T : number { // (not real code)
return a + b;
}
しかし、私が使ったほとんどの他の言語に存在するように、C#では "数字"の基本クラスはありません。数値の型はIComparable、IFormattable、IConvertible、IComparable、IEquatableですが、算術機能はないようです。それらはすべて、構造体であり、オブジェクトとは別の共通のスーパークラスはありません。 (私がC#の構造体に精通していないし、まるでそれらがクラスのようなものでもクラスとは違っていても、私がここで意味をねじれているなら、許してください)
私は何かがないか、 "a"と "b"が "+"のコンテキスト内にあることを正確に宣言することなく、 "a + b"を実行するメソッドをC#で記述する
(コメントに返信しました**明らかにするために**キャスティングもオーバーロードもありません) –
( 'IEnumerable.Sum'についてのあなたの他のコメントは、MiscUtilは' Sum'、 'Average'等 - using 'Operator'など) –