C#에서 Int32.MaxValue 필드는 32비트 부호 있는 정수(Int32)가 가질 수 있는 최대값을 나타내는 데 사용됩니다. 그 값은 2,147,483,647이며, 정수 오버플로를 방지하거나 값의 범위를 검사할 때 매우 유용하게 활용됩니다.
구문
Int32.MaxValue 필드의 구문은 다음과 같습니다.
public const int MaxValue = 2147483647;
예제 1
먼저 Int32.MaxValue 필드를 활용하는 기본적인 예제를 살펴보겠습니다. 아래 코드는 두 정수의 값, 해시코드, 동등 여부, TypeCode 그리고 Int32의 최대값을 출력합니다.
using System;
public class Demo {
public static void Main(){
int val1 = 23;
int val2 = 23;
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 = "+ Int32.MaxValue);
}
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Value1 = 23 Value2 = 23 HashCode for value1 = 23 HashCode for value2 = 23 Are they equal? = True TypeCode for val1 = Int32 TypeCode for val2 = Int32 Maximum Value = 2147483647
예제 2: 범위 검사 후 형 변환하기
다음 예제는 long 배열에 담긴 값들이 Int32 표현 범위 내에 있는지 검사한 뒤, 범위 안에 있으면 int로 변환하는 방법을 보여줍니다. Int32.MinValue와 Int32.MaxValue를 함께 사용하면 변환 시 발생할 수 있는 오버플로 예외를 사전에 방지할 수 있습니다.
using System;
public class Demo {
public static void Main(){
long[]val = {8998, -899898778, 8787867687878, -20};
int res;
foreach(long a in val){
if(a >= Int32.MinValue && a <= Int32.MaxValue){
res = Convert.ToInt32(a);
Console.WriteLine("Converted: "+res);
}
else{
Console.WriteLine("Not Possible");
}
}
}
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Converted: 8998 Converted: -899898778 Not Possible Converted: -20
배열의 세 번째 값인 8787867687878은 Int32의 최대값인 2,147,483,647을 초과하기 때문에 "Not Possible"이 출력되며 변환이 수행되지 않습니다. 이처럼 Int32.MaxValue와 Int32.MinValue를 활용한 범위 검사는 안전한 형 변환을 위한 필수적인 패턴입니다.