+演算子をジェネリックな変数に使う方法を知りたいです。
以下のような、x, yの型としてint, float, doubleなどを想定した2次元上の点を表すクラスを作りたいのですが、
+演算子をTに用いることができないという旨のエラーが出ます。
C#
1public class MyPoint<T> 2{ 3 T x; 4 T y; 5 6 public MyPoint(T x, T y) 7 { 8 this.x = x; 9 this.y = y; 10 } 11 12 public MyPoint<T> Add(MyPoint<T> point) 13 { 14 x = this.x + point.x; 15 y = this.y + point.y; 16 return new MyPoint<T>(x, y); 17 } 18}
エラーメッセージ error CS0019: Operator '+' cannot be applied to operands of type 'T' and 'T'
型Tのオブジェクトからあるメソッドを呼び出したい場合はそれが実装されていることを保証するようなインターフェイスをwhereを用いて指定すればよいと思うのですが、
以上のような演算子の場合はどのように型制約をすればよいのでしょうか?
よろしくお願いします。
あなたの回答
tips
プレビュー