Я немного смущен тем, как работают методы расширения.
Если я правильно это прочитаю http://msdn.microsoft.com/en-us/library/bb383977.aspx и Если метод расширения имеет та же подпись, что и метод в закрытом классе, каков приоритет вызова?.
Затем следующее должно выписать "Экземпляр", но вместо этого он пишет "Метод расширения".
interface IFoo
{
}
class Foo : IFoo
{
public void Say()
{
Console.WriteLine("Instance");
}
}
static class FooExts
{
public static void Say(this IFoo foo)
{
Console.WriteLine("Extension method");
}
}
class Program
{
static void Main(string[] args)
{
IFoo foo = new Foo();
foo.Say();
}
}
Оцените любую помощь в разъяснении поведения.