Поскольку вы используете C # 4.0, вы можете написать универсальный метод . Например:
void MyMethod<T>(T param)
{
if (typeof(T) == typeof(int))
{
// the object is an int
}
else if (typeof(T) == typeof(string))
{
// the object is a string
}
}
Но вы должны очень серьезно подумать, является ли это хорошей идеей. Приведенный выше пример немного пахнет кодом. Фактически, весь смысл дженериков должен быть дженерик . Если вам требуется особый случай, когда ваш код зависит от типа передаваемого объекта, это признак того, что вы должны использовать вместо этого перегрузку. Таким образом, каждая перегрузка метода обрабатывает свой уникальный случай. Я не могу представить себе никакого недостатка для этого.