0x49D1

0L4g0YDQsNC30YDQsNCx0L7RgtC60LUsINC00LvRjyDRgNCw0LfRgNCw0LHQvtGC0YfQuNC60L7QsiA=

Всегда ли Extension Method==простой SynthaxSugar?


Вот я так и думал, а на деле оказалось не совсем так. Случайно наткнулся на очень хороший пример:
Частый пример: с их помощью можно дать общюю реализацию интерфейса.
Допустим у нас есть интерфейс:

interface IDog
{
    void Bark(int seconds);
}

Можно добавить extension method к произвольному статическому классу:

static class DogExtensions
{
    // Barks for 2 seconds
    public static void Bark(this IDog dog)
    {
        dog.Bark(2);
    }
}

Теперь тем классам, которые реализуют интерфейс IDog, нужно реализовать 1 метод, но любые клиенты интерфейса IDog так же получат доступ и к ранее написанному перегруженному методу! Так что Syntax Sugar очень даже вкусный =)

источник
Реклама

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: