2010-03-25 17 views
7

nếu có hai loại (Loại a, Loại b), có cách nào "đẹp" để tìm không nếu hai số đó có thể được so sánh, tổng hợp, v.v ...?Làm thế nào để kiểm tra xem hai loại có thể được so sánh, tổng hợp, vv?

Tôi đã suy nghĩ nếu các loại thực hiện IConvertible, người ta có thể chuyển đổi cả hai để cho phép nói số thập phân và thực hiện một "Convert.ToDecimal(a) > Convert.ToDecimal(b)"?

Tôi đang xây dựng một bộ đánh giá biểu thức và muốn có thể làm việc với bất kỳ loại đối tượng nào và do đó cần phải biết loại có thể được so sánh với loại khác hay không (nó KHÔNG phải là cùng loại trên cả hai mặt ví dụ: double > int)

+0

Đây là câu hỏi của tôi về cùng một vấn đề. http://stackoverflow.com/questions/2093230/how-to-check-that-i-can-sum-values-of-given-type –

Trả lời

1

Thời gian bạn có thể thêm vào các loại phụ thuộc vào các quy tắc ràng buộc của ngôn ngữ lập trình của bạn. Chuyển đổi ngầm định cụ thể và độ phân giải quá tải.

Vì .net 3.5 có lớp "Biểu thức" và các lớp trợ giúp có liên quan có thể làm điều đó. Solution for overloaded operator constraint in .NET generics

Các vấn đề liên quan