Я знаю из этого вопроса, что методы расширения могут работать только с экземплярами класса, а не с самим статическим классом. Это означает, что я не могу распространять полезные статические классы, такие как Convert
и Math
.
Что я хочу знать, почему это так? Из приведенной выше ссылки есть несколько предложений о том, как команда С# могла реализовать такую функциональность. Есть ли какая-то философская причина, почему она не поддерживается?
Например, здесь обоснование за тем, почему нет встроенного расширения LINQ ForEach<T>
для IEnumerable<T>
.