У меня есть метод, который использует IList<T>
в качестве параметра. Мне нужно проверить, что это за тип T
объекта, и что-то сделать на его основе. Я пытался использовать T
значение, но компилятор не позволяет этого. Мое решение следующее:
private static string BuildClause<T>(IList<T> clause)
{
if (clause.Count > 0)
{
if (clause[0] is int || clause[0] is decimal)
{
//do something
}
else if (clause[0] is String)
{
//do something else
}
else if (...) //etc for all the types
else
{
throw new ApplicationException("Invalid type");
}
}
}
Должен быть способ сделать это лучше. Есть ли способ проверить тип T
переданного, а затем использовать switch
оператор?