Giới thiệu
Phương thức Single.GetTypeCode() trong C# trả về TypeCode cho kiểu giá trị Single (float 32-bit). TypeCode là enum đại diện cho kiểu dữ liệu cơ bản.
Cú pháp
public TypeCode GetTypeCode ();
Ví dụ 1: Hai giá trị float bình thường
using System;
public class Demo {
public static void Main() {
float f1 = 15.3f;
float f2 = 35.9f;
Console.WriteLine("Value1 = " + f1);
Console.WriteLine("Hashcode cho Value1 = " + f1.GetHashCode());
Console.WriteLine("TypeCode cho Value1 = " + f1.GetTypeCode());
Console.WriteLine("\nValue2 = " + f2);
Console.WriteLine("Hashcode cho Value2 = " + f2.GetHashCode());
Console.WriteLine("TypeCode cho Value2 = " + f2.GetTypeCode());
Console.WriteLine("\nKết quả so sánh f1 và f2 = " + f1.CompareTo(f2));
}
}
Đầu ra ví dụ 1
Value1 = 15.3 Hashcode cho Value1 = 1098173645 TypeCode cho Value1 = Single Value2 = 35.9 Hashcode cho Value2 = 1108318618 TypeCode cho Value2 = Single Kết quả so sánh f1 và f2 = -1
Ví dụ 2: Giá trị float tối đa
using System;
public class Demo {
public static void Main() {
float f1 = 19.3f;
float f2 = Single.MaxValue; // 3.402823E+38
Console.WriteLine("Value1 = " + f1);
Console.WriteLine("Hashcode cho Value1 = " + f1.GetHashCode());
Console.WriteLine("TypeCode cho Value1 = " + f1.GetTypeCode());
Console.WriteLine("\nValue2 = " + f2);
Console.WriteLine("Hashcode cho Value2 = " + f2.GetHashCode());
Console.WriteLine("TypeCode cho Value2 = " + f2.GetTypeCode());
}
}
Đầu ra ví dụ 2
Value1 = 19.3 Hashcode cho Value1 = 1100637798 TypeCode cho Value1 = Single Value2 = 3.402823E+38 Hashcode cho Value2 = 2139095039 TypeCode cho Value2 = Single
Giải thích TypeCode
TypeCode.Singlecó giá trị số là 13.- Dù giá trị float là gì (bình thường, vô cực, NaN, MinValue, MaxValue),
GetTypeCode()luôn trả vềTypeCode.Single. - Phương thức này triển khai interface
IConvertible.
Ứng dụng thực tế
- Serialization: xác định kiểu để ghi header.
- Dynamic type switching:
switch (val.GetTypeCode()). - Database mapping: ánh xạ kiểu C# sang kiểu SQL.
- Logging/debug: in kiểu thực tế của biến object.
So sánh với Double.GetTypeCode()
| Kiểu | Struct | TypeCode | Kích thước |
|---|---|---|---|
| float | Single | Single (13) | 32-bit |
| double | Double | Double (14) | 64-bit |