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

ดึงรหัสแฮช (Hash Code) ของอินสแตนซ์ Decimal ปัจจุบันใน C#

ภาพรวม

เมธอด 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