Monday, March 01, 2010

Extension methods on Interfaces

 

class Program
{
[STAThread]
public static void Main()
{
IFoo myFoo = new Foo();
myFoo.DoFoo(); //Class Foo does DoFoo()
myFoo.DoBar(); //Class FooExtensions does DoBar()
}
}
internal interface IFoo
{
void DoFoo();
}
internal class Foo : IFoo
{
public void DoFoo()
{
Console.WriteLine("Class Foo does DoFoo()");
}
}
internal static class FooExtensions
{
public static void DoBar(this IFoo obj)
{
Console.WriteLine("Class FooExtensions does DoBar()");
}
}

No comments: