C#-এ Single.GetHashCode() মেথডটি বর্তমান ইনস্ট্যান্সের হ্যাশ কোড (hash code) রিটার্ন করে। হ্যাশ কোড একটি ইন্টিজার মান যা অবজেক্টকে হ্যাশ টেবিলে দ্রুত খুঁজে বের করতে সাহায্য করে।
সিনট্যাক্স (Syntax)
public override int GetHashCode ();
উদাহরণ ১: দুটি ভিন্ন float মানের হ্যাশ কোড
using System;
public class Demo {
public static void Main() {
float f1 = 40.2f;
object f2 = 50.5f;
Console.WriteLine("Value1 = " + f1);
Console.WriteLine("HashCode of Value1 = " + f1.GetHashCode());
Console.WriteLine("Value2 = " + f2);
Console.WriteLine("HashCode of Value2 = " + f2.GetHashCode());
Console.WriteLine("Are both the values equal? = " + f1.Equals(f2));
}
}
আউটপুট
Value1 = 40.2 HashCode of Value1 = 1109445837 Value2 = 50.5 HashCode of Value2 = 1112145920 Are both the values equal? = False
উদাহরণ ২: দুটি 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("Value2 = " + f2);
Console.WriteLine("Hashcode for Value2 = " + f2.GetHashCode());
Console.WriteLine("Is f1 and f2 equal? = " + f1.CompareTo(f2));
}
}
আউটপুট
Value1 = 15.3 Hashcode for Value1 = 1098173645 Value2 = 35.9 Hashcode for Value2 = 1108318618 Is f1 and f2 equal? = -1
মূল পয়েন্টস
- হ্যাশ কোড একটি ৩২-বিট সাইনড ইন্টিজার যা অবজেক্টের জন্য অনন্য (unique) হতে পারে নাও হতে পারে।
- দুটি সমান মান (
Equals()মেথড অনুযায়ী) সবসময় একই হ্যাশ কোড দেবে। - অসমান মানের হ্যাশ কোডও একই হতে পারে (হ্যাশ কলিশন) - এটি সাধারণ।
- হ্যাশ কোড মূলত হ্যাশ-ভিত্তিক কালেকশন (যেমন:
HashSet,Dictionary,Hashtable) এ দ্রুত লুকআপের জন্য ব্যবহৃত হয়। floatবাSingleটাইপের জন্য হ্যাশ কোড বিট-লেভেল রিপ্রেজেন্টেশন থেকে তৈরি হয়।