[c#] The type must be a reference type in order to use it as parameter 'T' in the generic type or method