Поделиться через


Int32.CompareTo Метод

Определение

Сравнивает данный экземпляр с заданным 32-битовым целым числом со знаком и возвращает значение, указывающее, как соотносятся их значения.

Перегрузки

CompareTo(Int32)

Сравнивает данный экземпляр с заданным 32-битовым целым числом со знаком и возвращает значение, указывающее, как соотносятся их значения.

CompareTo(Object)

Сравнивает этот экземпляр с заданным объектом и возвращает значение, указывающее, как соотносятся значения этих объектов.

CompareTo(Int32)

Исходный код:
Int32.cs
Исходный код:
Int32.cs
Исходный код:
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. Компилятор Майкрософт C# создает инструкции для представления значения параметра в Int32виде , а затем создает Int32.CompareTo метод, который сравнивает значения экземпляра Int32 и Int32 представление параметра.

Ознакомьтесь с документацией по языку программирования, чтобы определить, выполняет ли его компилятор неявное расширение преобразований числовых типов.

См. также раздел

Применяется к

CompareTo(Object)

Исходный код:
Int32.cs
Исходный код:
Int32.cs
Исходный код:
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; в противном случае возникает исключение.

См. также раздел

Применяется к