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

C#에서 Int16(short) 값 형식의 TypeCode 구하는 방법

C#에서 GetTypeCode() 메서드를 사용하면 Int16(short) 값 형식의 TypeCode를 간단히 확인할 수 있습니다. TypeCode는 개체의 데이터 형식을 나타내는 열거형으로, 런타임 중에 변수의 실제 형식을 판별해야 할 때 매우 유용합니다.

short 타입의 변수에 대해 GetTypeCode()를 호출하면 TypeCode.Int16이 반환됩니다. 아래 예제를 통해 실제 동작 과정을 살펴보겠습니다.

예제 1

using System;
public class Demo {
   public static void Main() {
      short val1 = 0;
      short val2 = Int16.MaxValue;
      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);
   }
}

출력 결과

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

Value1 = 0
Value2 = 32767
HashCode for value1 = 0
HashCode for value2 = 2147450879
Are they equal? = False
TypeCode for val1 = Int16
TypeCode for val2 = Int16

예제 2

이번에는 서로 다른 값을 가진 두 개의 short 변수로 동일한 작업을 수행해 보겠습니다.

using System;
public class Demo {
   public static void Main() {
      short val1 = 23;
      short 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);
   }
}

출력 결과

실행 결과는 다음과 같습니다.

Value1 = 23
Value2 = 0
HashCode for value1 = 1507351
HashCode for value2 = 0
Are they equal? = False
TypeCode for val1 = Int16
TypeCode for val2 = Int16

정리

두 예제에서 볼 수 있듯이, 변수에 저장된 값(0, 최댓값 32767, 23 등)과 무관하게 short 형식 변수의 GetTypeCode()는 항상 TypeCode.Int16을 반환합니다. 이는 TypeCode가 저장된 '값'이 아니라 변수의 '형식' 자체를 나타내기 때문입니다. 또한 GetHashCode()는 값에 따라 고유한 해시 코드를 반환하며, Equals() 메서드를 사용하면 두 값의 동일 여부를 비교할 수 있습니다.