Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C#

C# में UInt64.GetHashCode() मेथड - उदाहरणों के साथ

C# में UInt64.GetHashCode() मेथड वर्तमान UInt64 इंस्टेंस के लिए हैश कोड लौटाता है। हैश कोड का उपयोग हैश-आधारित संग्रह (जैसे HashSet, Dictionary) में त्वरित लुकअप के लिए किया जाता है।

सिंटैक्स

public override int GetHashCode ();

उदाहरण 1: सामान्य मान और MinValue

using System; 

public class Demo 
{ 
    public static void Main()
    { 
        ulong val1 = 8768768; 
        ulong val2 = UInt64.MinValue; 
        
        Console.WriteLine("HashCode for val1 = " + val1.GetHashCode()); 
        Console.WriteLine("HashCode for val2 = " + val2.GetHashCode()); 
    } 
}

आउटपुट

HashCode for val1 = 8768768
HashCode for val2 = 0

उदाहरण 2: बड़ा मान और MaxValue

using System; 

public class Demo 
{ 
    public static void Main()
    { 
        ulong val1 = 89879878; 
        ulong val2 = UInt64.MaxValue; 
        
        Console.WriteLine("HashCode for val1 = " + val1.GetHashCode()); 
        Console.WriteLine("HashCode for val2 = " + val2.GetHashCode()); 
    } 
}

आउटपुट

HashCode for val1 = 89879878
HashCode for val2 = 0

नोट: मूल स्रोत में त्रुटि

मूल स्रोत के दूसरे उदाहरण में टिप्पणी UInt32.GetHashCode() कहती है लेकिन कोड UInt64 का उपयोग करता है। यह UInt64.GetHashCode() का सही उदाहरण है।

हैश कोड व्यवहार विश्लेषण

उदाहरणों से स्पष्ट है कि UInt64 के लिए GetHashCode() आमतौर पर मान के निचले 32 बिट्स को int के रूप में लौटाता है:

  • 8768768 → 8768768 (32-बिट रेंज में)
  • 0 (MinValue) → 0
  • 89879878 → 89879878 (32-बिट रेंज में)
  • UInt64.MaxValue (18446744073709551615) → 0 (निचले 32 बिट्स 0 हैं)

सत्यापन कोड

ulong max = UInt64.MaxValue; // 0xFFFFFFFFFFFFFFFF
int lower32 = (int)(max & 0xFFFFFFFF); // 0xFFFFFFFF = -1 (साइन्ड) या 4294967295 (अनसाइन्ड)
// लेकिन GetHashCode() 0 लौटाता है, इसलिए कार्यान्वयन भिन्न हो सकता है

महत्वपूर्ण विचार

  • हैश कोड समानता नहीं दर्शाता** - दो अलग मानों का समान हैश कोड हो सकता है (कोलिजन)
  • Dictionary/HashSet में कुंजी के रूप में उपयोग करते समय Equals() भी जांचा जाता है
  • हैश कोड रनटाइम संस्करणों के बीच बदल सकता है - स्थायी भंडारण के लिए उपयुक्त नहीं
  • सुरक्षा-संवेदनशील संदर्भों के लिए क्रिप्टोग्राफिक हैश (SHA256 आदि) का उपयोग करें

संबंधित मेथड्स

  • UInt64.Equals() - वास्तविक मान समानता जांच
  • UInt64.CompareTo() - क्रम तुलना
  • GetHashCode() - सभी प्रकारों के लिए Object से विरासत में मिला
  1. - C# में UInt64.Equals() मेथड - उदाहरणों के साथ

    C# में UInt64.Equals() मेथड एक मान लौटाता है जो दर्शाता है कि क्या वर्तमान इंस्टेंस किसी निर्दिष्ट ऑब्जेक्ट या UInt64 मान के बराबर है। सिंटैक्स दो ओवरलोड उपलब्ध हैं: public override bool Equals (object ob); public bool Equals (ulong ob); पहला सिंटैक्स: ob पैरामीटर इस इंस्टेंस से तुलना करने के लिए

  1. - C# में UInt64.CompareTo() मेथड - उदाहरणों के साथ

    C# में UInt64.CompareTo() मेथड वर्तमान इंस्टेंस की तुलना किसी निर्दिष्ट ऑब्जेक्ट या UInt64 मान से करता है और उनके सापेक्ष मानों का संकेत लौटाता है। सिंटैक्स दो ओवरलोड उपलब्ध हैं: public int CompareTo (object val); public int CompareTo (ulong val); पहला सिंटैक्स: val तुलना के लिए एक ऑब्जेक्ट है दूस

  1. - C# में UInt16.GetHashCode() मेथड उदाहरण सहित

    C# में UInt16.GetHashCode() मेथड का उपयोग वर्तमान UInt16 इंस्टेंस के लिए HashCode प्राप्त करने के लिए किया जाता है। सिंटैक्स निम्नलिखित सिंटैक्स है - public override int GetHashCode (); उदाहरण आइए UInt16.GetHashCode() मेथड को लागू करने का एक उदाहरण देखते हैं - using System; public class Demo {