C#의 Int64.CompareTo() 메서드는 현재 인스턴스를 지정된 객체(Object) 또는 Int64(long) 값과 비교한 후, 두 값의 상대적인 크기를 나타내는 정수를 반환합니다.
구문 (Syntax)
Int64.CompareTo() 메서드의 기본 구문은 다음과 같습니다.
public int CompareTo (long val); public int CompareTo (object val);
첫 번째 구문에서 val은 현재 인스턴스와 비교할 정수(long) 값이며, 두 번째 구문에서 val은 비교 대상이 되는 객체를 의미합니다.
반환값 이해하기
CompareTo() 메서드는 다음과 같은 결과값을 반환합니다.
- 0보다 작은 값: 현재 인스턴스가 비교 대상보다 작은 경우
- 0: 두 값이 동일한 경우
- 0보다 큰 값: 현재 인스턴스가 비교 대상보다 큰 경우
예제 1: long 값끼리 비교하기
다음은 Int64.CompareTo() 메서드를 사용해 두 개의 long 값을 비교하는 첫 번째 예제입니다.
using System;
public class Demo {
public static void Main(){
long val1 = 20;
long val2 = 18;
Console.WriteLine("Value 1 = "+val1);
Console.WriteLine("Value 2 = "+val2);
Console.WriteLine("Return value (comparison) = "+val1.CompareTo(val2));
}
}실행 결과
위 코드를 실행하면 다음과 같은 출력 결과를 확인할 수 있습니다.
Value 1 = 20 Value 2 = 18 Return value (comparison) = 1
val1(20)이 val2(18)보다 크므로, 비교 결과로 양수인 1이 반환됩니다.
예제 2: 객체(Object)와 비교하기
이번에는 CompareTo() 메서드에 object 타입의 값을 전달하여 비교하는 예제를 살펴보겠습니다.
using System;
public class Demo {
public static void Main(){
long val1 = 20;
object val2 = (long)20;
Console.WriteLine("Value 1 = "+val1);
Console.WriteLine("Value 2 = "+val2);
Console.WriteLine("Return value (comparison) = "+val1.CompareTo(val2));
}
}실행 결과
위 코드를 실행하면 아래와 같은 출력 결과가 나타납니다.
Value 1 = 20 Value 2 = 20 Return value (comparison) = 0
두 값이 모두 20으로 동일하기 때문에 비교 결과로 0이 반환됩니다. 이처럼 Int64.CompareTo() 메서드는 값의 크기 비교뿐만 아니라 동등성 판단에도 활용할 수 있습니다.