giao diện IComparer
(cả giao diện chung và không chung) cho phép bạn so sánh hai trường hợp với nhau.
Phương pháp Compare
cho phép bạn so sánh chính đối tượng với một phiên bản khác. Offcourse, khi dụ hiện tại là null, bạn sẽ nhận được một NullReferenceException
trong trường hợp này, vì bạn gọi Compare
trên một thể hiện 'null'. Một lớp thực hiện IComparer
có thể khắc phục sự cố này.
Vì vậy, khi bạn thực hiện giao diện IComparer, bạn sẽ có một lớp học trong đó có một phương pháp 'So sánh', có thể được gọi là như thế này:
public class MyObjectComparer : IComparer<MyObject>
{
public int Compare(MyObject first, MyObject second)
{
// implement logic here to determine whether first is less, greater or equal then second.
}
}
này cho phép bạn làm điều này:
var c = new MyObjectComparer();
var one = new MyObject();
var two = new MyObject();
c.Compare (one, two);
Khi bạn khởi tạo một Hashtable
với các nhà xây dựng, nơi bạn chỉ định các trường hợp IEqualityComparer
, điều này có nghĩa rằng cho IEqualityComparer
sẽ được sử dụng để xác định xem một phím nào đó là đã có trong Hashtable.
Nếu không, phương pháp So sánh của đối tượng khóa sẽ được sử dụng.
Nguồn
2011-10-13 08:24:13