Why does the Equals method return a different result from within the generic method? I think that there\'s some automatic boxing here that I don\'t understand.
Here\'s a
TimezoneInfo defines it's own overload of Equals(TimeZoneInfo). In the Compare method, the object equals is used (it's a virtual method call of Object.Equals), whereas in Console.WriteLine(tzOne.Equals(tzTwo)) the overloaded (new) TimeZoneInfo.Equals method is called.
TimeZoneInfo obviously hasn't overridden the Object.Equals method correctly...