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

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

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.Single có 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ểuStructTypeCodeKích thước
floatSingleSingle (13)32-bit
doubleDoubleDouble (14)64-bit