เมธอด 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, และการสลับประเภทข้อมูล