Boris
Boris

Reputation: 8951

How to pass a generic object as a methods parameter

This may be a very basic question, but it still gets me confused (and Google can't help) ;-) How can I pass a generic object as a parameter to a function?

For example I have a class CoolGeneric<T>

Now I need a method DoSomethingWithAGeneric(CoolGeneric g). Here the compiler keeps on complaining that a concrete type parameter is necessary. But the method should work with all kinds of type parameters!

How can I do this? Thanks!

Upvotes: 3

Views: 2412

Answers (2)

Marc Gravell
Marc Gravell

Reputation: 1064114

You want:

DoSomethingWithAGeneric<T>(CoolGeneric<T> g)

the compiler will usually detect the T automatically (generic type inference), so the caller doesn't normally have to specify it; i.e.

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

which is (usually) identical to:

DoSomethingWithAGeneric<int>(foo);

Upvotes: 3

Steve B
Steve B

Reputation: 37710

Simply :

DoSomethingWithAGeneric<T>(CoolGeneric<T> g)

Or if the method is within a class declaring the generic type :

class MyClass<T> {

    DoSomethingWithAGeneric(CoolGeneric<T> g)


}

Upvotes: 7

Related Questions