Int32.CompareTo Метод

Определение

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

Перегрузки

Имя Описание
CompareTo(Int32)

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

CompareTo(Object)

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

CompareTo(Int32)

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

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

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

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

CompareTo(Object)

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

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

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