ภาพรวม
เมธอด Decimal.GetHashCode() คืนค่า hash code (int) สำหรับอินสแตนซ์ Decimal ปัจจุบัน ใช้สำหรับการจัดเก็บใน hashtable หรือ dictionary ที่อิง hash
ตัวอย่างที่ 1: Hash code ของค่า Decimal ทั่วไป
using System;
public class Demo
{
public static void Main()
{
Decimal val = 135269.38193M;
Console.WriteLine("Decimal Value = {0}", val);
Console.WriteLine("HashCode = {0}", (val.GetHashCode()));
}
}
ผลลัพธ์
Decimal Value = 135269.38193
HashCode = 1328665595
ตัวอย่างที่ 2: Hash code ของ Decimal.MaxValue
using System;
public class Demo
{
public static void Main()
{
Decimal val = Decimal.MaxValue;
Console.WriteLine("Decimal Value = {0}", val);
Console.WriteLine("HashCode = {0}", (val.GetHashCode()));
}
}
ผลลัพธ์
Decimal Value = 79228162514264337593543950335
HashCode = 1173356544
คำอธิบายเพิ่มเติม
- Hash code อาจต่างกันระหว่างรุ่น .NET หรือแพลตฟอร์มต่างๆ ไม่ควรนำไปใช้เป็น unique identifier ถาวร
- ค่า Decimal ที่เท่ากัน (Equals) จะต้องมี hash code เท่ากัน (แต่ hash code เท่ากันไม่ได้หมายความว่าค่าเท่ากัน - collision)
- Decimal override Equals() และ GetHashCode() จาก ValueType
- ใช้ใน Dictionary<Decimal, TValue> หรือ Hashtable ที่มีคีย์เป็น Decimal