如何将通用对象作为方法参数传递

时间:2011-09-26 07:36:04

标签: c# generics

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

例如,我有一个班级CoolGeneric<T>

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

我该怎么做?谢谢!

2 个答案:

答案 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);