.NET ジェネリックにおける演算子のオーバーロード制約
ジェネリック メソッドを使用する場合、受け入れられる型を、減算演算子などの特定の演算子がオーバーロードされます。ただし、インターフェイスは演算子のオーバーロードをサポートしていないため、制約としてインターフェイスを使用する場合は制限に直面します。
この問題に対処するために、.NET 3.5 では、演算子への効率的かつ直接的なアクセスを可能にするライブラリの導入によるソリューションが登場しました。ジェネリック医薬品の中では。このライブラリでは、次のような操作が可能です。
T result = Operator.Add(first, second); // implicit <T>; here
また、C# 4.0 では、"dynamic" キーワードにより動的型付けが可能になり、" " 演算子を使用して型 T の 2 つの値を追加できるようになります。
static T Add<T>(T x, T y) { dynamic dx = x, dy = y; return dx + dy; }
.NET 2.0 の別のアプローチには、各オペレーターのメソッドを備えたインターフェイスの作成が含まれます。
interface ICalc<T> { T Add(T,T)() T Subtract(T,T)() }
ただし、この解決策では、ICalc
以上が演算子のオーバーロードをサポートするために .NET でジェネリック型を制約するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。