"Неверующий" из С# спрашивал меня, какова цель методов расширения. Я объяснил, что вы могли бы добавить новые методы для объектов, которые уже были определены, особенно если вы не являетесь владельцем/управляете источником исходным объектом.
Он поднял "Почему бы просто не добавить метод к своему классу?" Мы шли кругом (в хорошем смысле). Мой общий ответ заключается в том, что это еще один инструмент в наборе инструментов, и его ответ - бесполезная трата инструмента... но я думал, что получу более "просвещенный" ответ.
Каковы некоторые сценарии, которые вы использовали методы расширения, которые у вас не могли (или не должны были) использовать метод, добавленный в ваш собственный класс?