Extension Methods

Extension methods - overview

Null checking

Explicitly using an extension method

Generic Extension Methods

Extension methods can only see public or internal members of the extended class

Extension methods for chaining

Extension methods with Enumeration

Extension methods dispatch based on static type

Extension methods on Interfaces

Extension methods arent supported by dynamic code

Extension methods in combination with interfaces

Extensions and interfaces together enable DRY code and mixin-like functionality

IListT Extension Method Example Comparing 2 Lists

Extension methods as strongly typed wrappers

Using Extension methods to create mapper classes

Using Extension methods to build new collection types e.g. DictList

Extension methods for handling special cases

Using Extension methods with Static methods and Callbacks