Comparer<T>.Compare(T, T) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
在衍生類別中覆寫時,比較型別相同的兩個物件並傳回值,指出一個物件是小於、等於還是大於另一個物件。
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
參數
- x
- T
要比較的第一個物件。
- y
- T
要比較的第二個物件。
傳回
帶正負號的整數,表示 x
和 y
的相對值,如下表所示。
值 | 意義 |
---|---|
小於零 | x 小於 y 。
|
零 | x 等於 y 。
|
大於零 | x 大於 y 。
|
實作
例外狀況
型別 T
不實作 IComparable<T> 泛型介面或 IComparable 介面。
範例
下列範例會定義可以取代預設比較子的對象 Box
比較子。 這個範例是提供給 類別之較大範例的 Comparer<T> 一部分。
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
備註
實作這個方法,以提供類型的 T
自定義排序順序比較。
給實施者的注意事項
null
允許與任何參考型別比較,而且不會產生例外狀況。 Null 參考會被視為小於非 Null 的任何參考。
如需特定文化特性比較的資訊,請參閱 System.Globalization 命名空間和 全球化和當地語系化。