public class Test { } public void foo (Test t) { } public void bar (Test,int> t) { } public T* baz () { return null; } void main () { var f = new Test (); foo (f); var g = new Test,int> (); bar (g); int* i = baz (); }