Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# UInt64.CompareTo() 메서드 완벽 가이드: 예제로 배우는 사용법

C#의 UInt64.CompareTo() 메서드는 현재 인스턴스를 지정된 객체(Object) 또는 UInt64(ulong) 값과 비교하고, 두 값의 상대적인 크기를 나타내는 정수를 반환합니다. 이 메서드는 IComparable 인터페이스의 일부로 구현되어 있어, 숫자 비교 로직을 작성할 때 유용하게 활용됩니다.

구문

UInt64.CompareTo() 메서드에는 두 가지 오버로드된 구문이 있습니다.

public int CompareTo(object val);
public int CompareTo(ulong val);

첫 번째 구문의 val은 현재 인스턴스와 비교할 객체를 의미하며, 두 번째 구문의 val은 비교할 부호 없는 정수(ulong)입니다.

반환값

  • 0: 현재 인스턴스가 비교 대상과 같은 경우
  • 0보다 작은 값: 현재 인스턴스가 비교 대상보다 작은 경우
  • 0보다 큰 값: 현재 인스턴스가 비교 대상보다 큰 경우

참고로 첫 번째 구문에서 전달된 객체가 UInt64 형식이 아니면 ArgumentException이 발생합니다.

예제 1: ulong 값 비교하기

다음은 두 개의 ulong 값을 CompareTo() 메서드로 비교하는 예제입니다.

using System;
public class Demo {
    public static void Main(){
        ulong val1 = 257876;
        ulong val2 = 5657655;
        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");
    }
}

출력

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

반환값(비교 결과) = -1
val1 < val2

val1(257876)이 val2(5657655)보다 작으므로 CompareTo() 메서드는 음수인 -1을 반환합니다.

예제 2: 객체와 비교하기

이번에는 object 타입으로 박싱된 ulong 값을 비교하는 예제를 살펴보겠습니다.

using System;
public class Demo {
    public static void Main(){
        ulong val1 = 258768768;
        object val2 = (ulong)1765765;
        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");
    }
}

출력

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

반환값(비교 결과) = 1
val1 > val2

val1(258768768)이 val2(1765765)보다 크므로 CompareTo() 메서드는 양수인 1을 반환합니다.

정리

UInt64.CompareTo() 메서드는 현재 인스턴스와 비교 대상의 크기 관계에 따라 음수, 0, 양수를 반환하는 간단하면서도 강력한 비교 도구입니다. 조건문과 함께 사용하면 두 값의 대소 관계를 손쉽게 판단할 수 있으며, 객체 타입과 기본 값 타입 모두를 지원한다는 점이 특징입니다.