У меня есть общий метод, поведение которого зависит от T - ссылочный тип или тип значения. Это выглядит так:
T SomeGenericMethod <T> (T obj)
{
if (T is class) //What condition I must write in the brackets?
//to do one stuff
else //if T is a value type like struct, int, enum and etc.
//to do another stuff
}
Я не могу дублировать этот метод, например:
T SomeGenericMethod <T> (T obj) where T : class
{
//Do one stuff
}
T SomeGenericMethod <T> (T obj) where T : struct
{
//Do another stuff
}
потому что их подписи равны. Кто-нибудь может мне помочь?