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
TypeCodelà enum trong namespaceSystem.- Giá trị trả về cho
sbyteluô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ểu | TypeCode | Giá trị số |
|---|---|---|
| Boolean | Boolean | 3 |
| SByte | SByte | 5 |
| Byte | Byte | 6 |
| Int16 | Int16 | 7 |
| Int32 | Int32 | 9 |
| Int64 | Int64 | 11 |
| Single | Single | 13 |
| Double | Double | 14 |
| String | String | 18 |
Ứng dụng
- Switch trên
TypeCodetrong serializer/deserializer. - Kiểm tra kiểu trong
IConvertibleimplementation. - Logging, debug: in ra kiểu thực tế của object.