Tôi có một phương thức sử dụng một IList<T>
làm tham số. Tôi cần kiểm tra loại T
đối tượng đó là gì và làm gì đó dựa trên nó. Tôi đã cố gắng sử dụngT
giá trị, nhưng trình biên dịch không cho phép nó. Giải pháp của tôi là như sau:
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");
}
}
}
Phải có một cách tốt hơn để làm điều này. Có cách nào để tôi có thể kiểm tra loại T
được truyền vào và sau đó sử dụng một switch
câu lệnh không?