Tengo un método que usa an IList<T>como parámetro. Necesito verificar cuál es el tipo de ese Tobjeto y hacer algo basado en él. Intentaba usar el Tvalor, pero el compilador no lo permite. Mi solución es la siguiente:
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");
}
}
}
Tiene que haber una mejor manera de hacer esto. ¿Hay alguna forma de verificar el tipo de Tque se pasa y luego usar una switchdeclaración?