එය අනිවාර්යයෙන්ම වැදගත් නොවේ; එය ඔබගේ එකතු කිරීම්වල ප්රමාණය සහ කාර්ය සාධන අවශ්යතා මත රඳා පවතී සහ කාර්ය සාධන අවශ්යතා ඔබ නොදන්නා පුස්තකාලයක ඔබේ පන්තිය භාවිතා කරන්නේද යන්න මත රඳා පවතී. මගේ එකතු කිරීමේ ප්රමාණය ඉතා විශාල නොවන බව මම නිතරම දනිමි. පරිපූර්ණ හැෂ් කේතයක් නිර්මාණය කිරීමෙන් ලබාගත් කාර්යසාධනයේ මයික්රෝ තත්පර කිහිපයකට වඩා මගේ කාලය වටිනවා; එබැවින් (සම්පාදකයාගේ කරදරකාරී අනතුරු ඇඟවීමෙන් මිදීමට) මම සරලවම භාවිතා කරන්නේ:
public override int GetHashCode()
{
return base.GetHashCode();
}
(ඇත්ත වශයෙන්ම මට අනතුරු ඇඟවීම ක්රියා විරහිත කිරීමට # ප්රාග්මා එකක් භාවිතා කළ හැකි නමුත් මම මේ ආකාරයට කැමැත්තෙමි.)
මෙහි සිටින අනෙක් අය සඳහන් කර ඇති සියලුම ගැටළු වලට වඩා ඔබට කාර්ය සාධනය අවශ්ය යැයි ඔබ සිතන විට, ඇත්ත වශයෙන්ම. වැදගත්ම දේ - එසේ නොමැතිනම් හැෂ් කට්ටලයකින් හෝ ශබ්ද කෝෂයකින් අයිතම ලබා ගැනීමේදී ඔබට වැරදි ප්රති results ල ලැබෙනු ඇත: හැෂ් කේතය වස්තුවක ආයු කාලය සමඟ වෙනස් නොවිය යුතුය (වඩාත් නිවැරදිව, හැෂ් කේතය අවශ්ය වන කාලය තුළ, එනම් සිටියදී ශබ්දකෝෂයක යතුරක්): නිදසුනක් ලෙස, අගය පොදු බැවින් පහත සඳහන් දේ වැරදියි, එම නිසා නිදසුනෙහි ජීවිත කාලය තුළ පන්තියට බාහිරව වෙනස් කළ හැකිය, එබැවින් ඔබ එය හැෂ් කේතයේ පදනම ලෙස භාවිතා නොකළ යුතුය:
class A
{
public int Value;
public override int GetHashCode()
{
return Value.GetHashCode(); //WRONG! Value is not constant during the instance's life time
}
}
අනෙක් අතට, අගය වෙනස් කළ නොහැකි නම් එය භාවිතා කිරීම සුදුසු ය:
class A
{
public readonly int Value;
public override int GetHashCode()
{
return Value.GetHashCode(); //OK Value is read-only and can't be changed during the instance's life time
}
}