Tôi muốn lớp Food
của mình có thể kiểm tra bất cứ khi nào nó bằng với một phiên bản khác của Food
. Sau này tôi sẽ sử dụng nó chống lại một Danh sách và tôi muốn sử dụng phương thức List.Contains()
của nó. Tôi có nên triển khai IEquatable<Food>
hoặc chỉ ghi đè Object.Equals()
không? Từ MSDN:Sự khác biệt giữa IEquatable và chỉ ghi đè Object.Equals() là gì?
Phương pháp này xác định sự bình đẳng của sử dụng comparer bình đẳng mặc định, theo định nghĩa của thực hiện của đối tượng của phương pháp IEquatable.Equals cho T (loại giá trị trong danh sách).
Vì vậy, câu hỏi tiếp theo của tôi là: các chức năng/lớp của khuôn khổ .NET sử dụng Object.Equals()
? Tôi có nên sử dụng nó ngay từ đầu không?
Giải thích rất tốt ở đây http://blogs.msdn.com/b/jaredpar/archive/2009/01/15/if-you-implement-iequatable-t-you-still-must-override-object- s-equals-and-gethashcode.aspx – nawfal
@nawfal: đã được đề cập đến trong câu trả lời được chấp nhận. –
có thể trùng lặp của [Hiểu IEquatable] (http://stackoverflow.com/questions/411500/understanding-iequatable) – nawfal