Writing extension functions in C#

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