C#의 UInt32.CompareTo() 메서드는 현재 인스턴스를 지정된 객체 또는 UInt32 값과 비교하여 두 값의 상대적인 크기를 나타내는 정수를 반환합니다. 이 메서드는 부호 없는 32비트 정수 간의 크기 비교가 필요할 때 유용하게 사용됩니다.
문법(Syntax)
UInt32.CompareTo() 메서드의 문법은 다음과 같습니다.
public int CompareTo(object val); public int CompareTo(uint val);
첫 번째 문법에서 val은 현재 인스턴스와 비교할 객체를 의미하며, 두 번째 문법에서 val은 비교 대상이 되는 부호 없는 정수(uint)입니다.
반환값
- 0: 현재 인스턴스가 비교 대상 값과 같은 경우
- 0보다 작은 값: 현재 인스턴스가 비교 대상 값보다 작은 경우
- 0보다 큰 값: 현재 인스턴스가 비교 대상 값보다 큰 경우
예제 1: uint 타입과 비교하기
아래 예제는 UInt32.CompareTo() 메서드를 사용하여 두 개의 uint 값을 비교하는 방법을 보여줍니다.
using System;
public class Demo {
public static void Main(){
uint val1 = 25;
uint val2 = 55;
int res = val1.CompareTo(val2);
Console.WriteLine("Return value (comparison) = " + res);
if (res > 0)
Console.WriteLine("val1 > val2");
else if (res < 0)
Console.WriteLine("val1 < val2");
else
Console.WriteLine("val1 = val2");
}
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Return value (comparison) = -30 val1 < val2
val1(25)이 val2(55)보다 작기 때문에 반환값은 -30으로 음수가 되며, "val1 < val2"가 출력됩니다.
예제 2: object 타입과 비교하기
이번에는 CompareTo() 메서드의 첫 번째 오버로드를 사용하여 객체 타입과 비교하는 예제를 살펴보겠습니다.
using System;
public class Demo {
public static void Main(){
uint val1 = 25;
object val2 = (uint)2;
int res = val1.CompareTo(val2);
Console.WriteLine("Return value (comparison) = " + res);
if (res > 0)
Console.WriteLine("val1 > val2");
else if (res < 0)
Console.WriteLine("val1 < val2");
else
Console.WriteLine("val1 = val2");
}
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Return value (comparison) = 23 val1 > val2
val1(25)이 val2(2)보다 크기 때문에 반환값은 23으로 양수가 되며, "val1 > val2"가 출력됩니다.
정리
UInt32.CompareTo() 메서드는 두 개의 오버로드를 제공하여 uint 타입뿐만 아니라 object 타입과도 비교할 수 있습니다. 반환되는 정수 값의 부호를 확인하면 두 값의 크기 관계를 쉽게 판단할 수 있어, 정렬 알고리즘이나 조건 분기 로직을 구현할 때 활용도가 높습니다.