重複の可能性:C#で
C# generic constraint for only integers
Generics - where T is a number?数値のみを受け入れる汎用型制約?
:
我々は概念的に私たちの一般的なタイプが制限されるジェネリック型以上の機能を持っている場合を想像してみて数字だけに型Tの変数の「数」私たちは、乗算を使用することができることを目指し、プラス、マイナス、などの演算子と言って
残念ながら、このようなものは、C#で受け入れられない:
public class Image<T> where T : number
パフォーマンスも重要なので、数値型の構造体を再定義して使用する必要はありません。
これを行うにはどうすればよいと思いますか?あるいは、ジェネリック型の変数に対して「高性能」算術関数を持たせることができるデザインパターンがありますか?
存在しません。 .net IMOの最大の欠陥の1つ。 'MiscUtil'の演算子クラスを使うことはできますが、それはやや遅いです。一部のC#数値プロジェクトでは、コードジェネレータを使用して、共通の数値型のコードのバージョンを作成します。 [[Jeff Avatar Image]] – CodesInChaos