C#의 Single.GetTypeCode() 메서드는 Single(단정밀도 부동 소수점) 값 형식에 대한 TypeCode를 반환하는 메서드입니다. 이 메서드를 활용하면 런타임에 변수의 형식 정보를 손쉽게 확인할 수 있어, 형식 검사나 조건 분기 로직을 작성할 때 유용하게 사용됩니다.
구문
메서드의 기본 구문은 다음과 같습니다.
public TypeCode GetTypeCode ();
매개변수는 받지 않으며, 해당 인스턴스의 형식을 나타내는 TypeCode 열거형 값을 반환합니다. C#에서 float 키워드는 내부적으로 System.Single 구조체와 동일하므로, float 변수에도 그대로 적용할 수 있습니다.
예제 1
먼저 두 개의 float 값을 선언하고, GetHashCode()와 GetTypeCode() 메서드를 함께 호출해 보겠습니다.
using System;
public class Demo {
public static void Main() {
float f1 = 15.3f;
float f2 = 35.9f;
Console.WriteLine("Value1 = " + f1);
Console.WriteLine("Hashcode for Value1 = " + f1.GetHashCode());
Console.WriteLine("TypeCode for Value1 = " + f1.GetTypeCode());
Console.WriteLine("\nValue2 = " + f2);
Console.WriteLine("Hashcode for Value2 = " + f2.GetHashCode());
Console.WriteLine("TypeCode for Value2 = " + f2.GetTypeCode());
Console.WriteLine("\nIs f1 and f2 equal? = " + f1.CompareTo(f2));
}
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Value1 = 15.3 Hashcode for Value1 = 1098173645 TypeCode for Value1 = Single Value2 = 35.9 Hashcode for Value2 = 1108318618 TypeCode for Value2 = Single Is f1 and f2 equal? = -1
출력에서 볼 수 있듯이 두 변수 모두 TypeCode가 Single로 반환됩니다. 또한 CompareTo() 메서드는 f1이 f2보다 작으므로 -1(음수)을 반환합니다. CompareTo는 앞의 값이 작으면 음수, 같으면 0, 크면 양수를 반환한다는 점도 함께 기억해 두면 좋습니다.
예제 2
이번에는 일반적인 float 값과 Single.MaxValue 상수를 함께 사용해 보겠습니다.
using System;
public class Demo {
public static void Main() {
float f1 = 19.3f;
float f2 = Single.MaxValue;
Console.WriteLine("Value1 = " + f1);
Console.WriteLine("Hashcode for Value1 = " + f1.GetHashCode());
Console.WriteLine("TypeCode for Value1 = " + f1.GetTypeCode());
Console.WriteLine("\nValue2 = " + f2);
Console.WriteLine("Hashcode for Value2 = " + f2.GetHashCode());
Console.WriteLine("TypeCode for Value2 = " + f2.GetTypeCode());
}
}출력 결과
실행 결과는 다음과 같습니다.
Value1 = 19.3 Hashcode for Value1 = 1100637798 TypeCode for Value1 = Single Value2 = 3.402823E+38 Hashcode for Value2 = 2139095039 TypeCode for Value2 = Single
Single.MaxValue는 단정밀도 부동 소수점이 표현할 수 있는 최댓값으로, 지수 표기법(3.402823E+38)으로 출력됩니다. 이 경우에도 GetTypeCode()는 동일하게 Single을 반환하는 것을 확인할 수 있습니다.
핵심 정리
- Single.GetTypeCode()는 매개변수 없이 호출되며, Single 값 형식의 TypeCode를 반환합니다.
- C#의
float키워드와System.Single은 동일한 형식입니다. - 반환되는 값은
System.TypeCode.Single입니다. - 런타임에 변수의 형식을 확인해야 하는 상황에서 간편하게 활용할 수 있습니다.