I'm probably in the minority here, but I think the whole extension methods concept is confusing. If you want to add a method to a class, then subclass it. That's why inheritance exists, and it makes a lot more sense to me when
I see MyTimeSpan.Ago rather than TimeSpan.Ago, because I might go searching the MSDN for documentation on TimeSpan.Ago only to find it doesn't exist.
> If you want to add a method to a class, then subclass it.
What if the class you want to add a method to is sealed or worse, is a struct, preventing you from doing just that? Not unlike DateTime, TimeSpan or String?