Mam metodę, która używa IList<T>parametru jako parametru. Muszę sprawdzić, jaki jest typ tego Tobiektu i zrobić coś na jego podstawie. Próbowałem użyć Twartości, ale kompilator na to nie pozwala. Moje rozwiązanie jest następujące:
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");
}
}
}
Musi być na to lepszy sposób. Czy istnieje sposób, aby sprawdzić, jaki typ Tjest przekazywany, a następnie użyć switchinstrukcji?