Я немного запутался о том, как работают методы расширения.
Если я правильно читаю 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();
}
}
Благодарим за любую помощь в прояснении поведения.