Tôi có một phương pháp sử dụng một tham số IList<T>
. Tôi cần kiểm tra loại đối tượng T
đó là gì và làm gì dựa trên nó. Tôi đã cố gắng sử dụng giá trị T
, 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:C# Generics and Type Checking
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ó cách tốt hơn để thực hiện việc này. Có cách nào tôi có thể kiểm tra loại T
được chuyển vào và sau đó sử dụng câu lệnh switch
không?
Cá nhân tôi muốn biết những gì bạn đang làm đặc biệt cho từng loại dữ liệu. Nếu bạn đang thực hiện cùng một phép biến đổi cho từng loại dữ liệu, có thể dễ dàng ánh xạ các loại khác nhau sang một giao diện chung và hoạt động trên giao diện đó. – Juliet