में GetHashCode विधि बनाना C# में कक्षा के लिए अपनी खुद की GetHashCode विधि बनाने का सबसे अच्छा तरीका क्या है? मान लीजिए मैं एक साधारण वर्ग (जो बराबर विधि ओवरराइड करता है) है, इस प्रकार है:सी #
class Test
{
public string[] names;
public double[] values;
public override bool Equals(object obj)
{
return (obj is Test) && this.Equals((Test)obj);
}
public bool Equals(Test t)
{
return names.Equals(t.names) && values.Equals(t.values);
}
}
मैं GetHashCode विधि के लिए डिफ़ॉल्ट कोड उपयोग करना चाहिए?
public override int GetHashCode()
{
return base.GetHashCode();
}
क्या मुझे अपनी कक्षा की सामग्री पर विधि का आधार बनाना चाहिए?
public override int GetHashCode()
{
return names.GetHashCode() + values.GetHashCode() ;
}
या मुझे कुछ और करना चाहिए?
आप यहां ठीक से बराबर नहीं हैं। – jjnguy
असल में, मुझे लगता है कि यह स्टैक ओवरफ्लो का कारण बन जाएगा। – jjnguy
नहीं, यह ढेर बह जाएगा नहीं। हालांकि, यह काम नहीं करेगा, या तो। – SLaks