C#의 UInt16.CompareTo() 메서드는 현재 인스턴스를 지정된 객체 또는 UInt16 값과 비교하고, 두 값의 상대적인 크기를 나타내는 정수를 반환합니다.
문법(Syntax)
UInt16.CompareTo() 메서드의 기본 문법은 다음과 같습니다.
public int CompareTo (object val); public int CompareTo (ushort val);
첫 번째 문법에서 val은 비교 대상이 되는 객체(Object)를 의미하며, 두 번째 문법에서는 비교할 부호 없는 정수(ushort)를 나타냅니다.
반환 값
CompareTo() 메서드의 반환 값은 다음과 같이 해석할 수 있습니다.
- 0: 현재 인스턴스와 값이 같은 경우
- 0보다 작은 값: 현재 인스턴스가 val보다 작은 경우
- 0보다 큰 값: 현재 인스턴스가 val보다 큰 경우
예제 1: ushort 값끼리 비교하기
다음 예제는 UInt16.CompareTo() 메서드를 사용하여 두 개의 ushort 값을 비교하는 방법을 보여줍니다.
using System;
public class Demo {
public static void Main(){
ushort val1 = 25;
ushort val2 = 55;
int res = val1.CompareTo(val2);
Console.WriteLine("반환 값(비교 결과) = "+res);
if (res > 0)
Console.WriteLine("val1 > val2");
else if (res < 0)
Console.WriteLine("val1 < val2");
else
Console.WriteLine("val1 = val2");
}
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
반환 값(비교 결과) = -30 val1 < val2
25에서 55를 빼면 -30이 되므로, CompareTo() 메서드는 음수를 반환하고 val1이 val2보다 작다는 것을 알 수 있습니다.
예제 2: 객체(Object)와 비교하기
이번에는 object 타입으로 박싱된 값을 인자로 전달하여 비교하는 예제입니다.
using System;
public class Demo {
public static void Main(){
ushort val1 = 25;
object val2 = (ushort)2;
int res = val1.CompareTo(val2);
Console.WriteLine("반환 값(비교 결과) = "+res);
if (res > 0)
Console.WriteLine("val1 > val2");
else if (res < 0)
Console.WriteLine("val1 < val2");
else
Console.WriteLine("val1 = val2");
}
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
반환 값(비교 결과) = 23 val1 > val2
25에서 2를 빼면 23이 되므로 양수가 반환되며, 이는 val1이 val2보다 크다는 것을 의미합니다.
정리
UInt16.CompareTo() 메서드는 값의 크기 비교 결과를 직관적인 정수 값으로 반환하기 때문에, 조건문과 함께 사용하면 두 값의 대소 관계를 손쉽게 판단할 수 있습니다. 특히 정렬(Sorting) 로직이나 유효성 검사 등 다양한 상황에서 유용하게 활용됩니다.