【发布时间】:2012-12-10 19:48:06
【问题描述】:
可能重复:
Arithmetic operator overloading for a generic class in C#
这是我创建的泛型类的代码,用于将复数添加到重载运算符。
public class Complex<T>
{
public T _a, _b;
public Complex(T i, T j)
{
_a = i;
_b = j;
}
public static Complex<T> operator +(Complex<T> i, Complex<T> j)
{
return new Complex<T>(i._a + j._a, i._b + j._b);
}
}
在处理这个问题时,我遇到了一个错误,
Error: Operator '+' cannot be applied to operands of type 'T' and 'T'
谁能建议我如何使用泛型运算符重载?
【问题讨论】:
-
还有:stackoverflow.com/questions/147646/… 不能用运算符重载定义值类型是 C# 的一个严重限制。根本没有令人满意的解决办法。
-
这首先不应该是通用的。仅当其中有 any 类型有意义时才创建泛型;这就是为什么它们被称为泛型。
标签: c# generics operator-overloading