Методы расширения для типов стандартной библиотеки .NET

Наверное, почти каждый .NET-разработчик сталкивался со случаями, когда для удобства кодирования рутинных действий и сокращения boilerplate-кода при работе со стандартными типами данных не хватает возможностей стандартной же библиотеки.

И практически в каждом проекте появляются сборки и пространства имен вида Common, ProjectName.Common и т.д., содержащие дополнения для работы со стандартными типами данных: перечислениями (Enums), Nullable-структурами, строками и коллекциями (перечислениями IEnumerable, массивами, списками и собственно коллекциями).

Как правило, эти дополнения реализуются с помощью механизма extension methods (методов расширения).
Часто можно наблюдать наличие реализаций монад, тоже построенных на механизме методов расширения.

Написание этой статьи инспирировано прочтением давней статьи-перевода Проверки на пустые перечисления и развернувшейся дискуссии к ней.

Статья давняя, но тема по-прежнему актуальная, тем более, что код, похожий на пример из статьи, приходилось встречать в реальной работе от проекта к проекту.

Читать дальше →
Методы расширения для типов стандартной библиотеки .NET
Source: habrahabr