KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Take the following: var x = new Action(() => { Console.Write("") ; }); var y = new Action(() => { }); var a = x.GetHashCode(); var b = y.GetHashCode(); Console.WriteLine(a == b); Console.WriteLine(x == y); This will print: True False Why is the hashcode the same? It is kinda surprising, and will make using delegates in a Dictionary as slow as a List (aka O(n) for lookups). Update: The question is why. IOW who made such a (silly) decision? A better hashcode implementation would have been: return Method ^ Target == null ? 0 : Target.GetHashcode(); // where Method is IntPtr
Tags (comma-separated)
Save Edits
Cancel