Приоритет метода расширения и статического метода

Рассмотрим следующую программу:

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()' невозможен с помощью ссылки на экземпляр; вместо этого укажите имя типа

Почему компилятор игнорирует метод расширения?

11
задан user 3 June 2012 в 14:42
поделиться