【发布时间】:2017-02-14 08:54:50
【问题描述】:
泛型用于将逻辑与数据类型解耦。
public class Calc<T>
{
public T Add(T a, T b)
{
return (a+b);
}
}
但这会引发以下编译时错误
运算符 + 不能应用于类型 T。
我不明白为什么会这样。因为如果它允许来自 main.cs
main()
{
Calc<int> obj = new Calc<int>();
int c = obj.Add(10,20);
}
有人可以解释为什么我会收到构建错误吗??
【问题讨论】:
-
@ManfredRadlwimmer,我知道什么是泛型
-
显然不是。如果您不对您的类型添加任何限制,则它只是一个
object。对象没有+运算符。 C# 中的泛型与其他语言中的泛型并不完全相同。 -
@ManfredRadlwimmer 我应该如何操作。如果我通过 float 它应该返回 float,如果 int 返回 int