3 ms·
His argument is that the concept of equality will vary by application and a default implementation adds very little. For example, does it make sense to test equ
by dschobel 16y ago
His argument is that the concept of equality will vary by application and a default implementation adds very little. For example, does it make sense to test equality on a filestream? Probably not, but it's there and it purports to have some meaning.
This of course, only makes sense in the post-generic world of .net +2.0 so he does excuse their presence as a vestige of 1.1.
- city41 16y agoBut simple equality often does make sense in the context of collections. Am I going to throw filestreams in a collection, probably not, but I very often throw all kinds of objects in a collection and the base object.Equals very often fits my needs there perfectly. I dunno, I haven't actually watched this presentation so maybe I just need more context. But I've been programming in C# since it came out and not once have I ever had any real issues with Equals and all of its related methods.
- dschobel 16y agoI agree that as a practical matter it does what you want a majority of the time but generic collections let you mandate that an author has thought about equality for his object at least a little by implementing IEquatable. Particularly since a default definition of equality doesn't always make sense (as in the case of the fs). As with the case of explicitly sealed/unsealed classes, it seems like Jon's MO is to make programmers think about some of these things more carefully rather than have a "correct 90% of the time" default; a sentiment which I can definitely appreciate. :) Anyway, he discusses it at approximately the 36 minute mark. Well worth a look.