Добро пожаловать в официальный репозиторий дизайна языка C#. Именно здесь разрабатываются, принимаются и специфицируются новые возможности языка C#.
C# разработан группой разработчиков языка C# (LDT) в тесном сотрудничестве с проектом Roslyn, реализующим этот язык.
Вы можете найти:
Если вы обнаружите ошибки или недостатки в вышеизложенном, пожалуйста, оставьте проблему, чтобы поднять их, или, что еще лучше, запрос на их исправление.
Однако предложения о новых функциях выдвигайте на обсуждение и отправляйте предложение как проблему или запрос на включение только в том случае, если вас пригласил сделать это член группы разработки языков («чемпион»).
Полный процесс проектирования описан здесь. Более краткий обзор приведен ниже.
Дебаты, касающиеся особенностей языка, проходят в форме обсуждений в этом репозитории.
Если вы хотите предложить функцию, обсудить текущие замечания или предложения по дизайну и т. д., откройте новую тему обсуждения.
Обсуждения, которые короткие и соответствуют теме, будут прочитаны с гораздо большей вероятностью. Если вы оставите комментарий номер пятьдесят, скорее всего, его прочитают лишь несколько человек. Чтобы облегчить навигацию по обсуждениям и получить от них пользу, соблюдайте несколько практических правил:
Предложения по языку, которые предотвращают появление определенного синтаксиса, могут быть реализованы с помощью анализатора Roslyn. Предложения, которые делают существующий синтаксис необязательно незаконным, будут отклонены комитетом по разработке языка, чтобы предотвратить увеличение сложности языка.
Когда член C# LDM обнаруживает, что предложение заслуживает рассмотрения более широкой командой, он может отстаивать его, что означает, что он представит его на совещании по проектированию языка C#. Предложения всегда обсуждаются в связанных обсуждениях, а не в теме чемпиона. Мы не всегда следовали этой политике, поэтому многие вопросы чемпионов будут обсуждаться; теперь мы блокируем вопросы, чтобы предотвратить возникновение новых обсуждений по ним. У каждого выпуска чемпиона будет ссылка на обсуждение.
Предложения развиваются в результате решений на собраниях по языковому дизайну, которые основываются на обсуждениях, экспериментах и автономной работе по проектированию.
Во многих случаях будет необходимо реализовать и опубликовать прототип функции, чтобы найти правильный дизайн и в конечном итоге решить, следует ли использовать эту функцию. Прототипы помогают выявить проблемы реализации и удобства использования функции. Прототип должен быть реализован в форке репозитория Roslyn и соответствовать следующим критериям:
После утверждения функция должна быть полностью реализована в Roslyn и полностью указана в спецификации языка, после чего предложение перемещается в соответствующую папку для готовой функции, например предложения C# 7.1.
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ : Активное предложение активно рассматривается для включения в будущую версию языка программирования C#, но никоим образом не гарантируется, что оно в конечном итоге будет включено в следующую или любую другую версию языка. Предложение может быть отложено или отклонено в любой момент на любом этапе вышеуказанного процесса на основании отзывов команды разработчиков, сообщества, рецензентов кода или тестирования.
У нас есть несколько разных этапов решения проблем в репозитории:
Встречи по языковому дизайну (LDM) проводятся LDT и случайными приглашенными гостями и документируются в записях совещаний по дизайну в папке совещаний, сгруппированных по папкам по годам. Срок действия заметки о совещании по проектированию описан в Meetings/README.md. LDM — это место, где принимаются решения о будущих версиях C#, в том числе о том, над какими предложениями работать, как их развивать и стоит ли и когда их принимать.
Текущую спецификацию ECMA-334 можно найти в виде уценки в репозитории стандартов языка C#.
Эталонную реализацию языка C# можно найти в репозитории Roslyn. Этот репозиторий также отслеживает статус реализации языковых функций. До недавнего времени именно здесь отслеживались артефакты языкового дизайна. Пожалуйста, подождите немного, пока мы рассматриваем активные предложения.