Int32.CompareTo 方法

定义

将此实例与指定的对象或 Int32 进行比较,并返回二者相对值的指示。Compares this instance to a specified object or Int32 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 此实例小于 valueThis instance is less than value.
Zero 此实例等于 valueThis instance is equal to value.
大于零Greater than zero 此实例大于 valueThis 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 并且参数类型为 ByteFor 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

要比较的对象,或为 nullAn object to compare, or null.

返回

一个带符号数字,指示此实例和 value 的相对值。A signed number indicating the relative values of this instance and value.

返回值Return Value 说明Description
小于零Less than zero 此实例小于 valueThis instance is less than value.
Zero 此实例等于 valueThis instance is equal to value.
大于零Greater than zero 此实例大于 valueThis instance is greater than value. -或--or- valuenullvalue is null.

实现

异常

value 不是 Int32value is not an Int32.

注解

无论其值如何,Int32的任何实例都视为大于 nullAny instance of Int32, regardless of its value, is considered greater than null.

value 必须 nullInt32的实例;否则,将引发异常。value must be null or an instance of Int32; otherwise, an exception is thrown.

另请参阅

适用于