# Comparer<T>.Compare(T, T) 方法

## 定义

``````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`

## 示例

``````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
``````

## 实施者说明

`null`允许与任何引用类型进行比较，并且不会生成异常。 null 引用被视为小于任何不为 null 的引用。