Furthermore, not all languages support operator overloading. So, if one
wants to write language independent code she/he should not rely on operator
overloading. For c# convenince the operators might be overloaded and the
virtual method might be used internally.
B/rgds
100
"Jon Skeet" <sk***@pobox.com> wrote in message
news:MP************************@news.microsoft.com ...
[What does this have to do with Windows forms, by the way? Please limit
your post to relevant groups - preferrably only one!]
#Hai <Re******************@Softhome.net> wrote: What is the difference between Object.Equals and "==" operator ?
Operators are not applied polymorphically, methods are. For instance:
string x = "hello";
string y = new string (x.ToCharArray());
object a=x;
object b=y;
x==y; // True, because String== is applied
a==b; // False, because Object== is applied, which asserts reference
// identity
x.Equals(y); // True, because String.Equals override Object.Equals
a.Equals(b); // True, because methods are invoked polymorphically
When we use CollectionBase.List.Remove(object), which methods is used to
compare objects ?
Almost certainly Equals - it's the only way that makes sense, really,
given that CollectionBase only knows about Objects, so to remove
entries you'd have to have the exact reference if it used ==.
--
Jon Skeet - <sk***@pobox.com>
http://www.pobox.com/~skeet/
If replying to the group, please do not mail me too