Как вызвать метод расширения из собственного класса без приведения?

Я пытаюсь вызвать метод расширенияв моем собственном классе, но он не компилируется. Рассмотрим следующие строки кода:

public interface IHelloWorld
{
}

public static class Extensions
{
    public static string HelloWorld(this IHelloWorld ext)
    {
        return "Hello world!";
    }
}

public class Test : IHelloWorld
{
    public string SaySomething()
    {
        return HelloWorld();
    }
}

По сути, я расширяю интерфейс. Я продолжаю получать эту ошибку:

The name 'HelloWorld' does not exist in the current context

Кто-нибудь может мне это объяснить? Когда я выполняю приведение типов, все выглядит хорошо:

return ((Test)this).HelloWorld();

Есть пояснения?

10
задан Kees C. Bakker 10 April 2012 в 10:37
поделиться