100
Mon Jun 30 14:21:43 CDT 2003
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" <skeet@pobox.com> wrote in message
news:MPG.19677b53e56b5a99989fbc@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 <ReplyToNewsgroupOnly@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 - <skeet@pobox.com>
>
http://www.pobox.com/~skeet/
> If replying to the group, please do not mail me too