Int32.CompareTo 方法
定义
将此实例与指定的 32 位有符号整数进行比较并返回对其相对值的指示。Compares this instance to a specified 32-bit signed integer and returns an indication of their relative values.
重载
CompareTo(Int32) |
将此实例与指定的 32 位有符号整数进行比较并返回对其相对值的指示。Compares this instance to a specified 32-bit signed integer and returns an indication of their relative values. |
CompareTo(Object) |
将此实例与指定对象进行比较并返回一个对二者的相对值的指示。Compares this instance to a specified object and returns an indication of their relative values. |
CompareTo(Int32)
将此实例与指定的 32 位有符号整数进行比较并返回对其相对值的指示。Compares this instance to a specified 32-bit signed integer and returns an indication of their relative values.
public:
virtual int CompareTo(int value);
public int CompareTo (int value);
abstract member CompareTo : int -> int
override this.CompareTo : int -> int
Public Function CompareTo (value As Integer) As Integer
参数
- value
- Int32
要比较的整数。An integer to compare.
返回
一个带符号数字,指示此实例和 value
的相对值。A signed number indicating the relative values of this instance and value
.
返回值Return Value | 说明Description |
---|---|
小于零Less than zero | 此实例小于 value 。This instance is less than value .
|
零Zero | 此实例等于 value 。This instance is equal to value .
|
大于零Greater than zero | 此实例大于 value 。This instance is greater than value .
|
实现
示例
下面的示例演示 Int32.CompareTo(Int32) 方法。The following example demonstrates the Int32.CompareTo(Int32) method. 除了显示方法为四个不同的比较返回的值外,还会将返回值转换为自定义枚举的成员 Comparison
(其值也将显示)。In addition to displaying the value returned by the method for four different comparisons, it converts the return value to a member of the custom Comparison
enumeration, whose value it also displays.
using System;
enum Comparison {
LessThan=-1, Equal=0, GreaterThan=1};
public class ValueComparison
{
public static void Main()
{
int mainValue = 16325;
int zeroValue = 0;
int negativeValue = -1934;
int positiveValue = 903624;
int sameValue = 16325;
Console.WriteLine("Comparing {0} and {1}: {2} ({3}).",
mainValue, zeroValue,
mainValue.CompareTo(zeroValue),
(Comparison) mainValue.CompareTo(zeroValue));
Console.WriteLine("Comparing {0} and {1}: {2} ({3}).",
mainValue, sameValue,
mainValue.CompareTo(sameValue),
(Comparison) mainValue.CompareTo(sameValue));
Console.WriteLine("Comparing {0} and {1}: {2} ({3}).",
mainValue, negativeValue,
mainValue.CompareTo(negativeValue),
(Comparison) mainValue.CompareTo(negativeValue));
Console.WriteLine("Comparing {0} and {1}: {2} ({3}).",
mainValue, positiveValue,
mainValue.CompareTo(positiveValue),
(Comparison) mainValue.CompareTo(positiveValue));
}
}
// The example displays the following output:
// Comparing 16325 and 0: 1 (GreaterThan).
// Comparing 16325 and 16325: 0 (Equal).
// Comparing 16325 and -1934: 1 (GreaterThan).
// Comparing 16325 and 903624: -1 (LessThan).
Public Enum Comparison As Integer
LessThan = -1
Equal = 0
GreaterThan = 1
End Enum
Module ValueComparison
Public Sub Main()
Dim mainValue As Integer = 16325
Dim zeroValue As Integer = 0
Dim negativeValue As Integer = -1934
Dim positiveValue As Integer = 903624
Dim sameValue As Integer = 16325
Console.WriteLine("Comparing {0} and {1}: {2} ({3}).", _
mainValue, zeroValue, _
mainValue.CompareTo(zeroValue), _
CType(mainValue.CompareTo(zeroValue), Comparison))
Console.WriteLine("Comparing {0} and {1}: {2} ({3}).", _
mainValue, sameValue, _
mainValue.CompareTo(sameValue), _
CType(mainValue.CompareTo(sameValue), Comparison))
Console.WriteLine("Comparing {0} and {1}: {2} ({3}).", _
mainValue, negativeValue, _
mainValue.CompareTo(negativeValue), _
CType(mainValue.CompareTo(negativeValue), Comparison))
Console.WriteLine("Comparing {0} and {1}: {2} ({3}).", _
mainValue, positiveValue, _
mainValue.CompareTo(positiveValue), _
CType(mainValue.CompareTo(positiveValue), Comparison))
End Sub
End Module
' The example displays the following output:
' Comparing 16325 and 0: 1 (GreaterThan).
' Comparing 16325 and 16325: 0 (Equal).
' Comparing 16325 and -1934: 1 (GreaterThan).
' Comparing 16325 and 903624: -1 (LessThan).
注解
此方法实现 System.IComparable<T> 接口,且执行方式略优于 Int32.CompareTo 方法,因为它不必将 value
参数转换为对象。This method implements the System.IComparable<T> interface and performs slightly better than the Int32.CompareTo method because it does not have to convert the value
parameter to an object.
根据您的编程语言,可以编写一个方法,在 CompareTo 此方法中,参数类型 (比实例类型更窄) 位。Depending on your programming language, it might be possible to code a CompareTo method where the parameter type has fewer bits (is narrower) than the instance type. 这是可能的,因为某些编程语言会执行将参数表示为类型的隐式扩大转换,该类型的位数与实例的位数一样多。This is possible because some programming languages perform an implicit widening conversion that represents the parameter as a type with as many bits as the instance.
例如,假设实例类型为 Int32 ,而参数类型为 Byte 。For example, suppose the instance type is Int32 and the parameter type is Byte. Microsoft c # 编译器生成表示参数值的指令 Int32 ,然后生成一个 Int32.CompareTo 方法,该方法将实例的值 Int32 与 Int32 参数表示形式进行比较。The Microsoft C# compiler generates instructions to represent the value of the parameter as an Int32, then generates a Int32.CompareTo method that compares the values of the Int32 instance and the Int32 parameter representation.
请查阅编程语言的文档,以确定其编译器是否对数值类型执行隐式扩大转换。Consult your programming language's documentation to determine whether its compiler performs implicit widening conversions on numeric types.
另请参阅
适用于
CompareTo(Object)
将此实例与指定对象进行比较并返回一个对二者的相对值的指示。Compares this instance to a specified object and returns an indication of their relative values.
public:
virtual int CompareTo(System::Object ^ value);
public int CompareTo (object value);
abstract member CompareTo : obj -> int
override this.CompareTo : obj -> int
Public Function CompareTo (value As Object) As Integer
参数
- value
- Object
要比较的对象,或为 null
。An object to compare, or null
.
返回
一个带符号数字,指示此实例和 value
的相对值。A signed number indicating the relative values of this instance and value
.
返回值Return Value | 说明Description |
---|---|
小于零Less than zero | 此实例小于 value 。This instance is less than value .
|
零Zero | 此实例等于 value 。This instance is equal to value .
|
大于零Greater than zero | 此实例大于 value ,或 value 为 null 。This instance is greater than value , or value is null .
|
实现
例外
注解
的任何实例 Int32 ,无论其值如何,都视为大于 null
。Any instance of Int32, regardless of its value, is considered greater than null
.
value
必须为 null
或的实例 Int32 ; 否则,将引发异常。value
must be null
or an instance of Int32; otherwise, an exception is thrown.