Int32.CompareTo 方法

定义

将此实例与指定的 32 位有符号整数进行比较并返回对其相对值的指示。

重载

CompareTo(Int32)

将此实例与指定的 32 位有符号整数进行比较并返回对其相对值的指示。

CompareTo(Object)

将此实例与指定对象进行比较并返回一个对二者的相对值的指示。

CompareTo(Int32)

将此实例与指定的 32 位有符号整数进行比较并返回对其相对值的指示。

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

要比较的整数。

返回

Int32

一个带符号数字,指示此实例和 value 的相对值。

返回值 说明
小于零 此实例小于 value
此实例等于 value
大于零 此实例大于 value

实现

示例

下面的示例演示 Int32.CompareTo(Int32) 方法。 除了显示方法返回的值进行四个不同的比较外,它还会将返回值转换为自定义 Comparison 枚举的成员,该成员的值也显示。

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).
open System

type Comparison =
    | LessThan = -1 
    | Equal = 0
    | GreaterThan = 1

let mainValue = 16325
let zeroValue = 0
let negativeValue = -1934
let positiveValue = 903624
let sameValue = 16325

printfn $"Comparing {mainValue} and {zeroValue}: {mainValue.CompareTo zeroValue} ({enum<Comparison>(mainValue.CompareTo zeroValue)})."

printfn $"Comparing {mainValue} and {sameValue}: {mainValue.CompareTo sameValue} ({enum<Comparison>(mainValue.CompareTo sameValue)})."

printfn $"Comparing {mainValue} and {negativeValue}: {mainValue.CompareTo negativeValue} ({enum<Comparison>(mainValue.CompareTo negativeValue)})." 

printfn $"Comparing {mainValue} and {positiveValue}: {mainValue.CompareTo positiveValue} ({enum<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 参数转换为对象。

根据编程语言,可以编写参数 CompareTo 类型比实例类型更窄 () 位的方法。 这是可能的,因为某些编程语言执行隐式扩大转换,该转换将参数表示为一个类型,其位数与实例一样多。

例如,假设实例类型为 Int32 ,参数类型为 Byte。 Microsoft C# 编译器生成用于表示参数 Int32值的说明,然后生成一个 Int32.CompareTo 方法,用于比较实例的值 Int32Int32 参数表示形式。

请参阅编程语言的文档,以确定其编译器是否对数值类型执行隐式扩展转换。

另请参阅

适用于

CompareTo(Object)

将此实例与指定对象进行比较并返回一个对二者的相对值的指示。

public:
 virtual int CompareTo(System::Object ^ value);
public int CompareTo (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

返回

Int32

一个带符号数字,指示此实例和 value 的相对值。

返回值 说明
小于零 此实例小于 value
此实例等于 value
大于零 此实例大于 value,或 valuenull

实现

例外

value 不是 Int32

注解

无论其值如何,任何实例 Int32都被视为大于 null

value 必须是 null 或实例; Int32否则,将引发异常。

另请参阅

适用于