Расширение функционала уже существующего класса
Их удобно использовать. Например основные Linq методы являются методами расширения. Например int[] vs = new{2,4,6,8} ; vs = vs.Where(a => a > 5).ToArray(); У массивов нет метода Where, но благодаря методам расширения можно записывать так, иначе было бы vs = Enumerable.ToArray(Enumerable.Where(vs, a => a > 5))
А ещё они применимы не только к классам, но и к интерфейсами, как те же Linq применимы к коллекциям (IEnumerable)
Для интерфейсов редкая практика (IEnumrable не в счёт)
Где-то применяют ещё к дженерикам, чтобы для всех типов было. Вроде в ReactiveUI такое используется
Хз что такое reactiveui
Библиотека для MVVM фреймворков, чтобы модели данных удобно было привязывать к вьюхам
Обсуждают сегодня