Writing Extension Functions in C#

There are two interfaces provided for writing extension functions in C#: