Использование расширений в C# (Extension)

Расширения (Extension) в языке C# – это методы в программах на языке C# (старше версии 3), которые позволяют добавить новый функционал в существующий статический класс. Это очень полезно, когда нет возможности изменить исходный код существующего класса, но при этом добавление новых методов необходимо.

Основные правила для расширений:

1. Методы не должны перекрывать существующие;
2. Имена расширений не должны совпадать с уже существующими. В таком случае созданные расширения просто не будут работать;
3. Расширенные методы не применяются на поля, свойства или события;
4. Не злоупотребляйте расширениями.
В примере расширения создадим метод, возвращающий ответ, является строка длинной или короткой.

Метод должен быть описан в статическом классе. Рекомендую этот класс назвать как-то понятно, например, ExtensionMethods. Метод будет возвращать строковую переменную newTest. Для того, чтобы указать, что это расширение, используется в параметрах метода ключевое слово this. Оно указывается перед первым параметром и указывает, для какого класса создается расширение. В данном примере создается расширение для класса String.

    static class ExtensionMethods 
    { 

       public static string IsThisStringLong(this String input) 
        { 
            string newTest = ""; 

            if (input.Length > 10) 
            { 
                newTest = "Длинная"; 
            } 
            else 
            { 
                newTest = "Короткая"; 
            } 
            return newTest; 
        }           
    }

Обращение к расширению из программы выглядит так:

            string test = "New string is here"; 
            Console.WriteLine(test.IsThisStringLong());

 

В методе не указывается первый параметр в скобках, т.к. он передается переменной, к которой метод применяется.

Класс с расширением можно разместить как в том же пространстве имен, так и в другом. Во втором случае необходимо использовать директиву using для указания пространства имен с классом метода расширения.

 


Комментариев нет »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment







MarkiMarta.ru. Записки отца-программиста" с 2009 г.
Категория информационной продукции 18+
Яндекс.Метрика