C#에서 값 형식의 TypeCode를 확인하려면 GetTypeCode() 메서드를 사용하면 됩니다. 이 메서드는 해당 값의 데이터 형식을 나타내는 TypeCode 열거형 값을 반환하며, int(Int32) 형식의 경우 항상 TypeCode.Int32가 반환됩니다.
예제 1
다음은 두 개의 정수 변수에 대해 TypeCode를 출력하는 기본 예제입니다.
using System;
public class Demo {
public static void Main() {
int val1 = 100;
int val2 = 50;
Console.WriteLine("Value1 = "+val1);
Console.WriteLine("Value2 = "+val2);
Console.WriteLine("Are they equal? = "+val1.Equals(val2));
Console.WriteLine("HashCode for Value1 = "+val1.GetHashCode());
Console.WriteLine("HashCode for Value2 = "+val2.GetHashCode());
TypeCode type1 = val1.GetTypeCode();
TypeCode type2 = val2.GetTypeCode();
Console.WriteLine("TypeCode for Value1 = "+type1);
Console.WriteLine("TypeCode for Value2 = "+type2);
}
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Value1 = 100 Value2 = 50 Are they equal? = False HashCode for Value1 = 100 HashCode for Value2 = 50 TypeCode for Value1 = Int32 TypeCode for Value2 = Int32
출력 결과에서 볼 수 있듯이 두 정수 값 모두 Int32라는 동일한 TypeCode를 반환합니다. 또한 Equals() 메서드는 두 값이 다르기 때문에 False를 반환하고, GetHashCode() 메서드는 각 값 자체를 해시 코드로 반환합니다.
예제 2
이번에는 일반적인 정수 값과 Int32의 최대값(Int32.MaxValue)을 사용해 TypeCode를 확인해 보겠습니다.
using System;
public class Demo {
public static void Main() {
int val1 = 5;
int val2 = Int32.MaxValue;
Console.WriteLine("Value1 = "+val1);
Console.WriteLine("Value2 = "+val2);
TypeCode type1 = val1.GetTypeCode();
TypeCode type2 = val2.GetTypeCode();
Console.WriteLine("TypeCode for Value1 = "+type1);
Console.WriteLine("TypeCode for Value2 = "+type2);
}
}출력 결과
실행 결과는 다음과 같습니다.
Value1 = 5 Value2 = 2147483647 TypeCode for Value1 = Int32 TypeCode for Value2 = Int32
값의 크기와 관계없이 int 형식으로 선언된 모든 변수는 TypeCode.Int32를 반환한다는 점을 확인할 수 있습니다. 즉, GetTypeCode() 메서드는 저장된 값이 아니라 변수의 데이터 형식 자체를 기준으로 TypeCode를 판별합니다.