重複の可能性:
.NET ジェネリックでオーバーロードされた演算子制約の解決策
私は方法を持っています
public static T Add<T>(T x, T y)
{
return x + y;
}
型 T が演算子 + をサポートしていない可能性があるため、明らかにコンパイルエラーが発生します。たとえば、メソッドを次のように呼び出す場合:
Add<MyCar>(car1, car2);
+
MyCar クラスにはオペレーターの定義がないため、そのメソッドを呼び出すことはできません。
ただし、そのメソッドを次のように呼び出すことは理にかなっています。
Add<Int32>(1,2);
そのため、メソッドをコンパイルできるようにするには、メソッドに where 句を配置する必要があることをずっと前に読んだことを覚えています。それは次のようなものでした:
public static T Add<T>(T x, T y) where T: "implements + operator"
{
return x + y;
}
しかし、私は構文を覚えていません。