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

C# SByte.GetTypeCode() 메서드 완벽 정리: 구문과 예제로 쉽게 이해하기

C#의 SByte.GetTypeCode() 메서드는 부호 있는 8비트 정수 값 형식인 SByte에 대한 TypeCode를 반환하는 데 사용됩니다. 이 메서드는 IConvertible 인터페이스에서 파생된 것으로, 런타임에 변수의 기본 형식 정보를 확인해야 할 때 유용하게 활용할 수 있습니다.

구문

메서드의 구문은 다음과 같습니다.

public TypeCode GetTypeCode ();

이 메서드는 매개변수를 받지 않으며, 호출된 인스턴스가 항상 SByte 형식이므로 TypeCode.SByte 값을 반환합니다.

예제 1

첫 번째 예제를 통해 GetTypeCode() 메서드와 함께 CompareTo(), GetHashCode() 메서드의 동작도 함께 살펴보겠습니다.

using System;
public class Demo {
   public static void Main() {
      sbyte s1 = 55;
      object s2 = (sbyte)55;
      Console.WriteLine("Value of S1 = "+s1);
      Console.WriteLine("Value of S2 = "+s2);
      int res = s1.CompareTo(s2);
      if (res > 0)
         Console.WriteLine("s1 > s2");
      else if (res < 0)
         Console.WriteLine("s1 < s2");
      else
         Console.WriteLine("s1 = s2");
      Console.WriteLine("HashCode for s1 = "+s1.GetHashCode());
      Console.WriteLine("GetTypeCode for s1 = "+s1.GetTypeCode());
      Console.WriteLine("HashCode for s2 = "+s2.GetHashCode());
   }
}

출력 결과

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

Value of S1 = 55
Value of S2 = 55
s1 = s2
HashCode for s1 = 14135
GetTypeCode for s1 = SByte
HashCode for s2 = 14135

출력 결과에서 볼 수 있듯이, s1과 s2는 동일한 값(55)을 가지므로 CompareTo() 비교 결과 두 값이 같다는 것을 알 수 있습니다. 또한 GetTypeCode() 메서드는 두 변수 모두에 대해 SByte라는 형식 코드를 반환합니다.

예제 2

이번에는 서로 다른 두 개의 sbyte 변수를 비교하는 예제를 살펴보겠습니다.

using System;
public class Demo {
   public static void Main() {
      sbyte s1 = 10;
      sbyte s2 = 100;
      Console.WriteLine("Value of S1 = "+s1);
      Console.WriteLine("Value of S2 = "+s2);
      int res = s1.CompareTo(s2);
      if (res > 0)
         Console.WriteLine("s1 > s2");
      else if (res < 0)
         Console.WriteLine("s1 < s2");
      else
         Console.WriteLine("s1 = s2");
      Console.WriteLine("HashCode for s1 = "+s1.GetHashCode());
      Console.WriteLine("GetTypeCode for s1 = "+s1.GetTypeCode());
      Console.WriteLine("HashCode for s2 = "+s2.GetHashCode());
      Console.WriteLine("GetTypeCode for s2 = "+s2.GetTypeCode());
   }
}

출력 결과

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

Value of S1 = 10
Value of S2 = 100
s1 < s2
HashCode for s1 = 2570
GetTypeCode for s1 = SByte
HashCode for s2 = 25700
GetTypeCode for s2 = SByte

두 번째 예제에서는 s1(10)이 s2(100)보다 작으므로 CompareTo() 메서드가 음수를 반환하여 "s1 < s2"가 출력되었습니다. 그리고 두 변수 모두 GetTypeCode() 메서드 호출 시 동일하게 TypeCode.SByte를 반환하는 것을 확인할 수 있습니다.

정리

SByte.GetTypeCode() 메서드는 언제나 TypeCode.SByte를 반환하며, 별도의 매개변수 없이 간단히 호출할 수 있습니다. 형식 변환 작업이나 리플렉션 기반 코드에서 개체의 형식 코드를 확인해야 하는 상황에서 활용도가 높습니다.