Рассмотрим следующую программу:
class A
{
public static void Foo()
{
}
}
static class Ext
{
public static void Foo(this A a)
{
}
}
class Program
{
static void Main(string[] args)
{
var a = new A();
a.Foo();
}
}
Она не компилируется с ошибкой:
Доступ к элементу 'Test.A.Foo()' невозможен с помощью ссылки на экземпляр; вместо этого укажите имя типа
Почему компилятор игнорирует метод расширения?