开发者

How to pass a generic object as a methods parameter

开发者 https://www.devze.com 2023-04-08 14:50 出处:网络
This may be a very basic question, but it still gets me confused (and Google can\'t h开发者_运维技巧elp) ;-) How can I pass a generic object as a parameter to a function?

This may be a very basic question, but it still gets me confused (and Google can't h开发者_运维技巧elp) ;-) 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!


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)


}


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);
0

精彩评论

暂无评论...
验证码 换一张
取 消