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

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

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 или параметр value равен значению null.

Реализации

Исключения

Значение параметра value не является объектом Int32.

Комментарии

Любой экземпляр Int32 , независимо от его значения, считается больше null .

value должен быть null или экземпляр Int32 ; в противном случае создается исключение.

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

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