Comparer<T>.Compare(T, T) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Wenn eine abgeleitete Klasse überschrieben wird, führt ein Vergleich von zwei Objekten desselben Typs aus und gibt einen Wert zurück, der angibt, ob ein Objekt kleiner als, gleich oder größer als der andere ist.
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
Parameter
- x
- T
Das erste zu vergleichende Objekt.
- y
- T
Das zweite zu vergleichende Objekt.
Gibt zurück
Eine signierte ganze Zahl, die die relativen Werte von x und y, wie in der folgenden Tabelle dargestellt, angibt.
| Wert: | Bedeutung |
|---|---|
| Kleiner als Null |
x ist kleiner als y.
|
| Null |
x entspricht y.
|
| Größer als Null |
x ist größer als y.
|
Implementiert
Ausnahmen
Der Typ T implementiert weder die IComparable<T> generische Schnittstelle noch die IComparable Schnittstelle.
Beispiele
Im folgenden Beispiel wird ein Vergleichselement von Box Objekten definiert, die anstelle des Standardvergleichs verwendet werden können. Dieses Beispiel ist Teil eines größeren Beispiels, das für die Comparer<T> Klasse bereitgestellt wird.
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;
}
}
}
type BoxLengthFirst() =
inherit Comparer<Box>()
// Compares by Length, Height, and Width.
override _.Compare(x: Box, y: Box) =
if x.Length.CompareTo y.Length <> 0 then
x.Length.CompareTo y.Length
elif x.Height.CompareTo y.Height <> 0 then
x.Height.CompareTo y.Height
elif x.Width.CompareTo y.Width <> 0 then
x.Width.CompareTo y.Width
else
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
Hinweise
Implementieren Sie diese Methode, um einen angepassten Sortierreihenfolgenvergleich für den Typ Tbereitzustellen.
Hinweise für Ausführende
Der Vergleich null mit einem beliebigen Verweistyp ist zulässig und generiert keine Ausnahme. Ein Nullverweis gilt als kleiner als ein Verweis, der nicht NULL ist.
Informationen zu kulturspezifischen Vergleichen finden Sie unter Namespace System.Globalization und Globalisierung und Lokalisierung.