Иногда бывает необходимость расширить функционал какого-либо класса, однако он или его методы закрыты для наследования. Для решения этой задачи существуют методы расширения, подробнее в этой статье.
Как реализовать?
Для реализации расширений, необходимо создать статический класс. К наименованию класса условий нет. Внутри класса необходимо реализовать статический метод. В параметрах метода нужно обязательно указать передачу текущего объекта. Синтаксис: this Type Name.
Для вызова метода расширения у необходимого объекта необходимо дописать метод.
Результат:
Итог
Полезный механизм для расширения функциональности. Для примера, где этот функционал действительно необходимо, можно привести расширение функциональности диалогов об ошибке. Вариант с расширением методов лучший, т.к. функциональность диалогов не будет вынесена за пределы работы с диалогами.
Спасибо за внимание!
Телеграмм канал: https://t.me/dotnetreview