The function, GetHashCode, turns whatever you give it into an integer (that's the simple explanation). It doesn't do it randomly though. So if you give it a string, lets say "blah", it'll spit out a big number. Because it isn't doing it randomly, it'll give you the same number every-time. I'm pretty sure that's the basic reason for having it stay the same. I may have mis-explained or misunderstood parts of it though. If I'm wrong I'm sure someone will gladly let me know :) This is the internet after-all!