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

เมธอด Decimal.GetHashCode ใน C# พร้อมตัวอย่าง


บทนำ

เมธอด Decimal.GetHashCode() ใน C# ใช้คืนค่ารหัสแฮช (hash code) สำหรับอินสแตนซ์ Decimal ปัจจุบัน รหัสแฮชเป็นจำนวนเต็ม 32 บิตที่มีเครื่องหมาย (int)

ไวยากรณ์ (Syntax)

public override int GetHashCode ();

ตัวอย่างที่ 1: รหัสแฮชของค่า 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: รหัสแฮชของ 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

สรุป

รหัสแฮชของ Decimal คำนวณจากค่าตัวเลข รวมถึงเครื่องหมายและตำแหน่งจุดทศนิยม ค่า Decimal ที่เท่ากันจะมีรหัสแฮชเท่ากันเสมอ ทำให้ Decimal ใช้งานได้ดีใน Dictionary<decimal, T> และ HashSet<decimal> แต่ควรระวังการเปรียบเทียบค่าทศนิยมที่คำนวณมา เพราะอาจมีความแตกต่างเล็กน้อยจากการปัดเศษ