我正在编写一个通用的 C# 结构。我有以下内容:
struct GenericPoint<T> where T : IComparable, IFormattable, IConvertible, IComparable<T>, IEquatable<T> {
T x;
T y;
GenericPoint(T x, T y) {
this.x = x;
this.y = y;
}
static GenericPoint<T> operator +(GenericPoint<T> p1, GenericPoint<T> p2) {
GenericPoint<T> r;
r.x = (dynamic) p1.x + p2.x;
r.y = (dynamic) p1.y + p2.y;
return r;
}
这会起作用,但有更好的方法吗?我的意图是 T 将是一种了解“+”运算符的类型。我很高兴在编译时做出这个承诺。但这可能吗?