【发布时间】:2014-03-10 16:55:53
【问题描述】:
在 C++ 中我们可以这样写:
template <typename T>
void Print(T a, T b)
{
cout<<a+b<<endl;
}
Print(12,56) or Print('c','s');
如果我们为用户定义的类型(类)重载运算符,我们也可以这样写:
Person a, b; Print(a,b);
但是在 C# 中我们不能编写诸如 + - 或 * / 之类的运算符 为什么我们不能写这个? 以及我们如何做到这一点(在通用方法中使用运算符)?
【问题讨论】:
-
C# 不支持这一点,因为 C# 泛型是类型系统的直接一部分。 (见约束)
-
" in C# we cant write operators such as + - or * /"我们不能? msdn.microsoft.com/en-us/library/aa288467%28v=vs.71%29.aspx -
@JacobKrall 如果您是泛型类,则不会。您不能指定泛型参数的约束。