Int32.CompareTo 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将此实例与指定的 32 位有符号整数进行比较并返回对其相对值的指示。
重载
CompareTo(Int32) |
将此实例与指定的 32 位有符号整数进行比较并返回对其相对值的指示。 |
CompareTo(Object) |
将此实例与指定对象进行比较并返回一个对二者的相对值的指示。 |
CompareTo(Int32)
- Source:
- Int32.cs
- Source:
- Int32.cs
- Source:
- Int32.cs
将此实例与指定的 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
要比较的整数。
返回
一个带符号数字,指示此实例和 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方法,用于比较实例的值Int32和Int32参数表示形式。
请参阅编程语言的文档,确定其编译器是否对数值类型执行隐式扩大转换。
另请参阅
适用于
CompareTo(Object)
- Source:
- Int32.cs
- Source:
- Int32.cs
- Source:
- Int32.cs
将此实例与指定对象进行比较并返回一个对二者的相对值的指示。
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
。
返回
一个带符号数字,指示此实例和 value
的相对值。
返回值 | 说明 |
---|---|
小于零 | 此实例小于 value 。
|
零 | 此实例等于 value 。
|
大于零 | 此实例大于 value ,或 value 为 null 。
|
实现
例外
value
不是 Int32。
注解
的任何 实例 Int32,无论其值如何,都被视为大于 null
。
value
必须是 null
或 的 Int32实例;否则会引发异常。