Pet Peeve #153:Overloading and param names

I have certainly been accused of being an incredible nit-picker when it comes to API designs, but the little aesthetic things do add up. For example consider the overload of the Equals method from System.Uri:

       public override bool Equals(object comparand);

Equals on object looks like this:

public virtual bool Equals(object obj);

Although the param names are not used in binding, the can cause developer confusion. How many people looked at Uri’s Equals() method and asked “is this the overload of Object’s equals method or a different thing”. Not to mention it just looks sloppy, and I don’t like that.

Who else is with me on this on? Do you have any stories of lost developer hours I can use to justify fixing mistakes like these in the future?