Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

เมธอด Single.GetTypeCode() ใน C# พร้อมตัวอย่าง


เมธอด Single.GetTypeCode() ใน C# ใช้สำหรับคืนค่า TypeCode ของประเภทค่า Single (float) ซึ่งจะคืนค่า TypeCode.Single เสมอ

ไวยากรณ์ (Syntax)

public TypeCode GetTypeCode ();

ตัวอย่างที่ 1: GetTypeCode กับค่า float ต่างกัน

using System;

public class Demo
{
    public static void Main()
    {
        float f1 = 15.3f;
        float f2 = 35.9f;

        Console.WriteLine("Value1 = " + f1);
        Console.WriteLine("Hashcode for Value1 = " + f1.GetHashCode());
        Console.WriteLine("TypeCode for Value1 = " + f1.GetTypeCode());

        Console.WriteLine("\nValue2 = " + f2);
        Console.WriteLine("Hashcode for Value2 = " + f2.GetHashCode());
        Console.WriteLine("TypeCode for Value2 = " + f2.GetTypeCode());  // ต้นฉบับพิมพ์ f1.GetTypeCode() ซ้ำ — แก้ไขแล้ว

        Console.WriteLine("\nIs f1 and f2 equal? = " + f1.CompareTo(f2));
    }
}

ผลลัพธ์

Value1 = 15.3
Hashcode for Value1 = 1098173645
TypeCode for Value1 = Single

Value2 = 35.9
Hashcode for Value2 = 1108318618
TypeCode for Value2 = Single

Is f1 and f2 equal? = -1

ตัวอย่างที่ 2: GetTypeCode กับค่าสูงสุดของ float

using System;

public class Demo
{
    public static void Main()
    {
        float f1 = 19.3f;
        float f2 = Single.MaxValue;

        Console.WriteLine("Value1 = " + f1);
        Console.WriteLine("Hashcode for Value1 = " + f1.GetHashCode());
        Console.WriteLine("TypeCode for Value1 = " + f1.GetTypeCode());

        Console.WriteLine("\nValue2 = " + f2);
        Console.WriteLine("Hashcode for Value2 = " + f2.GetHashCode());
        Console.WriteLine("TypeCode for Value2 = " + f2.GetTypeCode());
    }
}

ผลลัพธ์

Value1 = 19.3
Hashcode for Value1 = 1100637798
TypeCode for Value1 = Single

Value2 = 3.402823E+38
Hashcode for Value2 = 2139095039
TypeCode for Value2 = Single

ข้อสังเกต

  • GetTypeCode() คืนค่า TypeCode.Single สำหรับทุกค่า float — รวมถึง NaN, Infinity, MinValue, MaxValue
  • ประโยชน์หลักคือการระบุประเภทข้อมูลใน runtime โดยไม่ใช้ Reflection
  • ในตัวอย่างแรก ต้นฉบับมีข้อผิดพลาดพิมพ์ f1.GetTypeCode() สำหรับ Value2 ทั้งสองครั้ง — ได้แก้ไขเป็น f2.GetTypeCode() แล้ว
  • TypeCode ใช้ใน Convert, serialization, และการสลับประเภทข้อมูล