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

C#의 UInt16.MaxValue 필드 완벽 가이드: 개념 정리와 실전 예제

C#에서 UInt16.MaxValue 필드는 16비트 부호 없는 정수(ushort)가 가질 수 있는 최대값을 나타냅니다. 이 값은 항상 65535로 고정되어 있으며, 변수의 값 범위를 검증하거나 안전하게 형식을 변환할 때 매우 유용하게 활용됩니다.

문법(Syntax)

UInt16.MaxValue 필드의 선언 구문은 다음과 같습니다.

public const ushort MaxValue = 65535;

예제 1: 기본 사용 방법

다음 예제는 ushort 변수의 해시 코드, 형식 코드(TypeCode)와 함께 UInt16.MaxValue 값을 출력하는 방법을 보여줍니다.

using System;
public class Demo {
    public static void Main(){
        ushort val1 = 23;
        ushort val2 = 0;
        Console.WriteLine("Value1 = "+val1);
        Console.WriteLine("Value2 = "+val2);
        Console.WriteLine("HashCode for value1 = "+val1.GetHashCode());
        Console.WriteLine("HashCode for value2 = "+val2.GetHashCode());
        Console.WriteLine("Are they equal? = "+(val1.Equals(val2)));
        TypeCode type1 = val1.GetTypeCode();
        TypeCode type2 = val2.GetTypeCode();
        Console.WriteLine("TypeCode for val1 = "+type1);
        Console.WriteLine("TypeCode for val2 = "+type2);
        Console.WriteLine("Maximum Value = "+ UInt16.MaxValue);
    }
}

실행 결과

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

Value1 = 23
Value2 = 0
HashCode for value1 = 23
HashCode for value2 = 0
Are they equal? = False
TypeCode for val1 = UInt16
TypeCode for val2 = UInt16
Maximum Value = 65535

예제 2: 값 범위 검증 후 형식 변환

다음 예제는 ulong 배열의 각 요소가 ushort 범위(UInt16.MinValue ~ UInt16.MaxValue) 내에 있는지 확인한 뒤, 범위 내에 있으면 Convert.ToUInt16()으로 변환하고 그렇지 않으면 변환이 불가능하다는 메시지를 출력합니다.

using System;
public class Demo {
    public static void Main(){
        ulong[]val = {8998, 899898778, 878787878};
        ushort res;
        foreach(ulong a in val){
            if(a >= UInt16.MinValue && a <= UInt16.MaxValue){
                res = Convert.ToUInt16(a);
                Console.WriteLine("Converted: "+res);
            } else {
                Console.WriteLine("Not Possible");
            }
        }
    }
}

실행 결과

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

Converted: 8998
Not Possible
Not Possible

정리

UInt16.MaxValue는 상수(const)이므로 런타임 오버헤드 없이 사용할 수 있으며, 8998처럼 ushort 범위 내의 값은 성공적으로 변환되지만 65535를 초과하는 큰 값은 변환에 실패함을 확인할 수 있습니다. 이처럼 UInt16.MinValue와 MaxValue를 함께 활용하면 데이터 손실이나 오버플로우 없이 안전한 형식 변환 로직을 작성할 수 있습니다.