Comparer<T>.IComparer.Compare(Object, Object) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Membandingkan dua objek dan mengembalikan nilai yang menunjukkan apakah satu kurang dari, sama dengan, atau lebih besar dari yang lain.
virtual int System.Collections.IComparer.Compare(System::Object ^ x, System::Object ^ y) = System::Collections::IComparer::Compare;
int IComparer.Compare (object x, object y);
abstract member System.Collections.IComparer.Compare : obj * obj -> int
override this.System.Collections.IComparer.Compare : obj * obj -> int
Function Compare (x As Object, y As Object) As Integer Implements IComparer.Compare
Parameter
- x
- Object
Objek pertama yang dibandingkan.
- y
- Object
Objek kedua untuk dibandingkan.
Mengembalikan
Bilangan bulat bertanda tangan yang menunjukkan nilai x
relatif dan y
, seperti yang diperlihatkan dalam tabel berikut.
Nilai | Makna |
---|---|
Kurang dari nol | x kurang dari y .
|
Nol | x sama dengan y .
|
Lebih besar dari nol | x lebih besar dari y .
|
Penerapan
Pengecualian
x
atau y
berjenis yang tidak dapat dilemparkan ke jenis T
.
-atau-
x
dan y
tidak mengimplementasikan IComparable<T> antarmuka generik atau IComparable antarmuka.
Contoh
Contoh berikut menunjukkan cara menggunakan IComparer.Compare metode untuk membandingkan dua objek. Contoh ini adalah bagian dari contoh yang lebih besar yang disediakan untuk Comparer<T> kelas .
// This explicit interface implementation
// compares first by the length.
// Returns -1 because the length of BoxA
// is less than the length of BoxB.
BoxLengthFirst LengthFirst = new BoxLengthFirst();
Comparer<Box> bc = (Comparer<Box>) LengthFirst;
Box BoxA = new Box(2, 6, 8);
Box BoxB = new Box(10, 12, 14);
int x = LengthFirst.Compare(BoxA, BoxB);
Console.WriteLine();
Console.WriteLine(x.ToString());
' This explicit interface implementation
' compares first by the length.
' Returns -1 because the length of BoxA
' is less than the length of BoxB.
Dim LengthFirst As New BoxLengthFirst()
Dim bc As Comparer(Of Box) = CType(LengthFirst, Comparer(Of Box))
Dim BoxA As New Box(2, 6, 8)
Dim BoxB As New Box(10, 12, 14)
Dim x As Integer = LengthFirst.Compare(BoxA, BoxB)
Console.WriteLine()
Console.WriteLine(x.ToString())
Keterangan
Metode ini adalah pembungkus untuk Compare(T, T) metode , jadi obj
harus ditransmisikan ke jenis yang ditentukan oleh argumen T
generik instans saat ini. Jika tidak dapat dilemparkan ke T
, akan ArgumentException dilemparkan.
Membandingkan null
dengan jenis referensi apa pun diizinkan dan tidak menghasilkan pengecualian. Saat mengurutkan, null
dianggap kurang dari objek lainnya.
Catatan Bagi Pemanggil
Compare(T, T) dan Equals(T, T) berperilaku berbeda dalam hal sensitivitas budaya dan sensitivitas huruf besar/kecil.
Untuk perbandingan string, StringComparer kelas direkomendasikan lebih dari Comparer<String>
. StringComparer Properti kelas mengembalikan instans yang telah ditentukan sebelumnya yang melakukan perbandingan string dengan kombinasi sensitivitas budaya dan sensitivitas huruf besar/kecil yang berbeda. Sensitivitas huruf besar/kecil dan sensitivitas budaya konsisten di antara anggota instans yang sama StringComparer .
Untuk informasi selengkapnya tentang perbandingan khusus budaya, lihat System.Globalization namespace layanan dan Globalisasi dan Pelokalan.