Tôi đang cố gắng viết một phương thức mở rộng trên các kiểu số để sử dụng trong một khuôn khổ kiểm tra thông thạo mà tôi đang xây dựng. Về cơ bản, tôi muốn làm điều này:Ràng buộc chung để đối sánh với các loại số
public static ShouldBeGreaterThan<T>(this T actual, T expected, string message)
where T : int || T: double || etc...
Chỉ where T : struct
không làm, vì đó cũng sẽ phù hợp string
và bool
, và có thể là cái gì khác tôi quên. có điều gì tôi có thể làm để chỉ khớp với các loại số không? (Các loại cụ thể triển khai các toán tử >
và <
, vì vậy tôi có thể so sánh chúng ... Nếu điều này có nghĩa là tôi cũng đang đối sánh ngày, điều đó không quan trọng - tiện ích sẽ vẫn làm những gì tôi mong đợi.)
Jon Skeet và Mark Gravell tập hợp một số lớp học thú vị cho điều này: http://www.yoda.arachsys.com/csharp/genericoperators.html –
@ Thực sự nó là "Marc", nhưng tôi sẽ cho phép bạn tắt - Rất ít người hiểu đúng, p –