Comparer<T>.Compare(T, T) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Při přepsání v odvozené třídě provede porovnání dvou objektů stejného typu a vrátí hodnotu určující, zda je jeden objekt menší, roven nebo větší než druhý.
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
První objekt, který se má porovnat.
- y
- T
Druhý objekt, který chcete porovnat.
Návraty
Celé číslo se znaménkem, které označuje relativní hodnoty x a y, jak je znázorněno v následující tabulce.
| Hodnota | Význam |
|---|---|
| Menší než nula |
x je menší než y.
|
| Nula |
x rovná se y.
|
| Větší než nula |
x je větší než y.
|
Implementuje
Výjimky
Typ T neimplementuje IComparable<T> buď obecné rozhraní, nebo IComparable rozhraní.
Příklady
Následující příklad definuje porovnávač Box objektů, které lze použít místo výchozího porovnávače. Tento příklad je součástí většího příkladu poskytnutého Comparer<T> pro třídu.
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
Poznámky
Implementujte tuto metodu pro poskytnutí přizpůsobeného porovnání pořadí řazení pro typ T.
Poznámky pro implementátory
Porovnání null s jakýmkoli typem odkazu je povoleno a nevygeneruje výjimku. Nulový odkaz je považován za menší než jakýkoli odkaz, který není null.
Informace o porovnáních specifických pro jazykovou verzi najdete v System.Globalization oboru názvů a globalizaci a lokalizaci.