Comparer<T>.Compare(T, T) Metoda

Definicja

Gdy jest zastępowany w klasie pochodnej, wykonuje porównanie dwóch obiektów tego samego typu i zwraca wartość wskazującą, czy jeden obiekt jest mniejszy niż drugi, czy jest równy lub większy.When overridden in a derived class, performs a comparison of two objects of the same type and returns a value indicating whether one object is less than, equal to, or greater than the other.

public:
 abstract int Compare(T x, T y);
public abstract int Compare (T x, T y);
public abstract int Compare (T? x, T? y);
abstract member Compare : 'T * 'T -> int
Public MustOverride Function Compare (x As T, y As T) As Integer

Parametry

x
T

Pierwszy obiekt do porównania.The first object to compare.

y
T

Drugi obiekt do porównania.The second object to compare.

Zwraca

Int32

Liczba całkowita ze znakiem, która wskazuje wartości względne x i y , jak pokazano w poniższej tabeli.A signed integer that indicates the relative values of x and y, as shown in the following table.

WartośćValue ZnaczenieMeaning
Mniej niż zeroLess than zero x jest mniejsze niż y .x is less than y.
ZeroZero x równa się y .x equals y.
Większe od zeraGreater than zero x jest większa niż y .x is greater than y.

Implementuje

Wyjątki

Typ nie T implementuje IComparable<T> interfejsu generycznego ani IComparable interfejsu.Type T does not implement either the IComparable<T> generic interface or the IComparable interface.

Przykłady

W poniższym przykładzie zdefiniowano funkcję porównującą Box obiektów, które mogą być używane zamiast domyślnej wartości porównującej.The following example defines a comparer of Box objects that can be used instead of the default comparer. Ten przykład jest częścią większego przykładu dostarczonego dla Comparer<T> klasy.This example is part of a larger example provided for the Comparer<T> class.

public class BoxLengthFirst : Comparer<Box>
{
    // Compares by Length, Height, and Width.
    public override int Compare(Box x, Box y)
    {
        if (x.Length.CompareTo(y.Length) != 0)
        {
            return x.Length.CompareTo(y.Length);
        }
        else if (x.Height.CompareTo(y.Height) != 0)
        {
            return x.Height.CompareTo(y.Height);
        }
        else if (x.Width.CompareTo(y.Width) != 0)
        {
            return x.Width.CompareTo(y.Width);
        }
        else
        {
            return 0;
        }
    }
}
Public Class BoxLengthFirst
    Inherits Comparer(Of Box)
    ' Compares by Length, Height, and Width.
    Public Overrides Function Compare(ByVal x As Box, ByVal y As Box) As Integer
        If x.Length.CompareTo(y.Length) <> 0 Then
            Return x.Length.CompareTo(y.Length)
        ElseIf x.Height.CompareTo(y.Height) <> 0 Then
            Return x.Height.CompareTo(y.Height)
        ElseIf x.Width.CompareTo(y.Width) <> 0 Then
            Return x.Width.CompareTo(y.Width)
        Else
            Return 0
        End If
    End Function

End Class

Uwagi

Zaimplementuj tę metodę, aby zapewnić dostosowany porównanie kolejności sortowania dla typu T .Implement this method to provide a customized sort order comparison for type T.

Uwagi dotyczące implementowania

Porównywanie null z dowolnym typem referencyjnym jest dozwolone i nie generuje wyjątku.Comparing null with any reference type is allowed and does not generate an exception. Odwołanie o wartości null jest uznawane za mniejsze niż dowolne odwołanie, które nie ma wartości null.A null reference is considered to be less than any reference that is not null.

Aby uzyskać informacje na temat porównań specyficznych dla kultury, zobacz System.Globalization przestrzeń nazw oraz globalizacja i lokalizacja.For information on culture-specific comparisons, see the System.Globalization namespace and Globalization and Localization.

Dotyczy

Zobacz też