Comparer<T>.Compare(T, T) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Wanneer deze wordt overschreven in een afgeleide klasse, wordt een vergelijking uitgevoerd van twee objecten van hetzelfde type en wordt een waarde geretourneerd die aangeeft of één object kleiner is dan, gelijk is aan of groter is dan de andere.
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
Parameters
- x
- T
Het eerste object dat moet worden vergeleken.
- y
- T
Het tweede object dat moet worden vergeleken.
Retouren
Een ondertekend geheel getal dat de relatieve waarden van x en y, zoals wordt weergegeven in de volgende tabel, aangeeft.
| Waarde | Betekenis |
|---|---|
| Kleiner dan nul |
x is kleiner dan y.
|
| Nul |
x is ygelijk aan .
|
| Groter dan nul |
x is groter dan y.
|
Implementeringen
Uitzonderingen
Het type T implementeert niet de IComparable<T> algemene interface of de IComparable interface.
Voorbeelden
In het volgende voorbeeld wordt een vergelijking van Box objecten gedefinieerd die kunnen worden gebruikt in plaats van de standaard comparer. Dit voorbeeld maakt deel uit van een groter voorbeeld voor de Comparer<T> klasse.
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
Opmerkingen
Implementeer deze methode om een aangepaste sorteervolgordevergelijking voor het type Tte bieden.
Notities voor uitvoerders
Vergelijking null met een verwijzingstype is toegestaan en genereert geen uitzondering. Een null-verwijzing wordt beschouwd als kleiner dan een verwijzing die niet null is.
Zie de System.Globalization naamruimte en globalisatie en lokalisatie voor informatie over cultuurspecifieke vergelijkingen.