Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Phương thức SByte.GetTypeCode() trong C# với các ví dụ

Giới thiệu

Phương thức SByte.GetTypeCode() trong C# trả về TypeCode cho kiểu giá trị SByte. TypeCode là enum chỉ định kiểu dữ liệu cơ bản của đối tượng.

Cú pháp

public TypeCode GetTypeCode ();

Ví dụ 1: So sánh sbyte với object

using System;

public class Demo {
    public static void Main() {
        sbyte s1 = 55;
        object s2 = (sbyte)55; // Boxing

        Console.WriteLine("Giá trị của S1 = " + s1);
        Console.WriteLine("Giá trị của 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 cho s1 = " + s1.GetHashCode());
        Console.WriteLine("GetTypeCode cho s1 = " + s1.GetTypeCode());
        Console.WriteLine("HashCode cho s2 = " + s2.GetHashCode());
    }
}

Đầu ra ví dụ 1

Giá trị của S1 = 55
Giá trị của S2 = 55
s1 = s2
HashCode cho s1 = 14135
GetTypeCode cho s1 = SByte
HashCode cho s2 = 14135

Ví dụ 2: Hai giá trị sbyte khác nhau

using System;

public class Demo {
    public static void Main() {
        sbyte s1 = 10;
        sbyte s2 = 100;

        Console.WriteLine("Giá trị của S1 = " + s1);
        Console.WriteLine("Giá trị của 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 cho s1 = " + s1.GetHashCode());
        Console.WriteLine("GetTypeCode cho s1 = " + s1.GetTypeCode());
        Console.WriteLine("HashCode cho s2 = " + s2.GetHashCode());
        Console.WriteLine("GetTypeCode cho s2 = " + s2.GetTypeCode());
    }
}

Đầu ra ví dụ 2

Giá trị của S1 = 10
Giá trị của S2 = 100
s1 < s2
HashCode cho s1 = 2570
GetTypeCode cho s1 = SByte
HashCode cho s2 = 25700
GetTypeCode cho s2 = SByte

Giải thích TypeCode

  • TypeCode là enum trong namespace System.
  • Giá trị trả về cho sbyte luôn là TypeCode.SByte (giá trị số 5).
  • Dù giá trị sbyte là bao nhiêu, GetTypeCode() luôn trả về SByte.
  • Phương thức này hữu ích khi viết code generic, serialization, hoặc kiểm tra kiểu động (dynamic type checking).

Bảng TypeCode phổ biến

KiểuTypeCodeGiá trị số
BooleanBoolean3
SByteSByte5
ByteByte6
Int16Int167
Int32Int329
Int64Int6411
SingleSingle13
DoubleDouble14
StringString18

Ứng dụng

  • Switch trên TypeCode trong serializer/deserializer.
  • Kiểm tra kiểu trong IConvertible implementation.
  • Logging, debug: in ra kiểu thực tế của object.