2011-09-26 62 views
3

这可能是一个非常基本的问题,但它仍然让我感到困惑(和谷歌无法帮助);-)我如何将一个通用对象作为参数传递给功能?如何传递一个通用的对象作为方法参数

比如我有一个类CoolGeneric<T>

现在我需要一种方法DoSomethingWithAGeneric(CoolGeneric g)。 在这里,编译器不断抱怨具体的类型参数是必要的。但该方法应该适用于各种类型的参数!

我该怎么做?谢谢!

回答

7

简单:

DoSomethingWithAGeneric<T>(CoolGeneric<T> g) 

或者,如果该方法是一个类声明泛型类型中:

class MyClass<T> { 

    DoSomethingWithAGeneric(CoolGeneric<T> g) 


} 
3

你想:

DoSomethingWithAGeneric<T>(CoolGeneric<T> g) 

编译器通常会检测T自动(通用类型推断),所以呼叫者通常不会有t o指定它;即

CoolGeneric<int> foo = ... 
DoSomethingWithAGeneric(foo); 

,它是(通常)相同:

DoSomethingWithAGeneric<int>(foo); 
相关问题