2015-11-12 5 views
3

Я знаю, что мы не можем иметь метод расширения во вложенных классах, и причины этого выбора имеют смысл, я не здесь, чтобы говорить об этом случае.Метод расширения в классе, который вложен в статический класс

Есть ли причина дизайна, почему невозможно иметь метод расширения в классе, который вложен в static class?

Это просто потому, что это «угловой корпус», который требует больше работы и считался бесполезным? Или есть еще одна причина?

+0

Я собирался отметить это как дубликат ["* C#: методы расширения, не допускаемые в вложенных статических классах? *"] (Http://stackoverflow.com/q/772351/1364007), тогда я перечитал ваш вопрос , –

+3

Как насчет [этого ответа Эрика Липперта] (http://stackoverflow.com/a/3934737/1364007) на ["* Почему методы расширения допускаются только в не-вложенном, неэквивалентном статическом классе? *"] (http://stackoverflow.com/q/3930335/1364007). –

+0

Звучит точно так же, как и в случае с углом ... обратите внимание, что не только сам класс, но и все содержащиеся классы должны быть неэквивалентными. Он может быть логически вложен в нестатический класс, хотя ... –

ответ

2

В этом answer, Эрик Липперт утверждает, что

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

Он продолжает говорить, что

Мы тщательно продуман его в течение длительного времени, и решили, что на основе этого рассмотрения, расходы на осуществлении функции (методы расширения в вложенном, общих статических класс) не были оправданы начисленными льготами.

Однако вы можете подать заявку here.

+2

Спасибо за крик. В настоящее время лучше представить предложения по дизайну языка на сайте Roslyn github. –

Смежные вопросы