这可能是一个非常基本的问题,但它仍然让我感到困惑(谷歌无法帮助);-)如何将通用对象作为参数传递给函数?
例如,我有一个班级CoolGeneric<T>
现在我需要一个方法DoSomethingWithAGeneric(CoolGeneric g)
。
在这里,编译器继续抱怨具体的类型参数是必要的。但该方法应该适用于各种类型的参数!
我该怎么做?谢谢!
答案 0 :(得分:7)
简单地说:
DoSomethingWithAGeneric<T>(CoolGeneric<T> g)
或者,如果该方法属于声明泛型类型的类:
class MyClass<T> {
DoSomethingWithAGeneric(CoolGeneric<T> g)
}
答案 1 :(得分:3)
你想:
DoSomethingWithAGeneric<T>(CoolGeneric<T> g)
编译器通常会自动检测T
(泛型类型推断),因此调用者通常不必指定它;即。
CoolGeneric<int> foo = ...
DoSomethingWithAGeneric(foo);
与(通常)相同:
DoSomethingWithAGeneric<int>(foo);