C # has no specialized specialization. You simply declared a new method with the type parameter named MyType , which has nothing for the class named MyType .
You can use, or there are general restrictions that you use to declare that T is at least MyType .
Another option is to make the base type common in T (and remove the common from the method) and have a specific type : TheBaseType<MyType>
source share