I make extensive use of extension methods , either to make classes small and focused or to improve readability. While porting a .NET 1.1 WinForms application to C# 3.0, I found lots of code like this: delegate int Int32DelegateStringBoolean ( string text, bool flag); void DoStuff() { // ... var x = ...