I'm just trying to catch up with C# again, and wanted to try some operator overloading. I first did ==, then the compiler said that if I overloaded == then I had to overload !=. That sounded weird to me, but I did it anyway.

But then it gives me warnings about not having overloaded
object.Equals(object o)
object.GetHashCode()


is this never going to end? Are those warnings any serious at all, or is it just a reminder like: "If you implement ==, then the user expects you to also have overloaded .Equals...blah blah blah."

And BTW what is the GetHashCode function supposed to do? Make hash key for the object, so it can be hashed? Is that all? And what does that have to do with the == operator...