Tôi muốn kiểm tra xem một loại có hỗ trợ IComparable trước khi sắp xếp nó hay không, nhưng tôi thấy rằng việc kiểm tra xem một loại có hỗ trợ giao diện IComparable bằng cách sử dụng "is" không phải lúc nào cũng trả lời đúng cho tôi hay không. Ví dụ, typeof(int) is IComparable
trả về false, mặc dù int không hỗ trợ giao diện IComparable.Làm cách nào để sử dụng "is" để kiểm tra xem một loại có hỗ trợ IComparable không?
Tôi lưu ý rằng typeof(int).GetInterfaces()
danh sách IComparable và typeof(int).GetInterface("IComparable")
trả về loại IComparable, vậy tại sao "is" không hoạt động như tôi mong đợi?
Thông số 'is' nói nó trả về đúng khi chuyển đổi sẽ không ném ngoại lệ. thử chuyển đổi 'int' thành' IComparable' và xem có gặp rắc rối nào không. – Dani