Bem-vindo ao repositório oficial de design da linguagem C#. É aqui que os novos recursos da linguagem C# são desenvolvidos, adotados e especificados.
C# foi projetado pela Equipe de Design de Linguagem C# (LDT) em estreita coordenação com o projeto Roslyn, que implementa a linguagem.
Você pode encontrar:
Se você descobrir bugs ou deficiências acima, deixe um problema para abordá-los, ou melhor ainda: uma solicitação pull para corrigi-los.
No entanto, para propostas de novos recursos , coloque-as para discussão e envie uma proposta apenas como um problema ou pull request se for convidado a fazê-lo por um membro da equipe de design de linguagem (um "campeão").
O processo completo de design é descrito aqui. Uma visão geral mais curta está abaixo.
O debate relativo aos recursos do idioma ocorre na forma de discussões neste repositório.
Se você quiser sugerir um recurso, discutir notas ou propostas de design atuais, etc., abra um novo tópico de discussão.
Discussões curtas e focadas no tópico têm muito mais probabilidade de serem lidas. Se você deixar o comentário número cinquenta, é provável que apenas algumas pessoas o leiam. Para tornar as discussões mais fáceis de navegar e tirar proveito, observe algumas regras básicas:
Propostas de linguagem que impedem a ocorrência de sintaxe específica podem ser alcançadas com um analisador Roslyn. Propostas que apenas tornem a sintaxe existente opcionalmente ilegal serão rejeitadas pelo comitê de design da linguagem para evitar o aumento da complexidade da linguagem.
Quando um membro do LDM C# descobre que uma proposta merece consideração pela equipe mais ampla, ele pode defendê-la, o que significa que a trará para a Reunião de Design da Linguagem C#. As propostas são sempre discutidas em discussões interligadas, e não na questão campeã. Nem sempre seguimos esta política, por isso muitas questões campeãs serão discutidas; agora bloqueamos os problemas para evitar que novas discussões ocorram sobre eles. Cada edição campeã terá um link de discussão.
As propostas evoluem como resultado de decisões em reuniões de design de linguagem, que são informadas por discussões, experimentos e trabalho de design offline.
Em muitos casos, será necessário implementar e compartilhar um protótipo de um recurso para chegar ao design correto e, em última análise, decidir se deseja adotar o recurso. Os protótipos ajudam a descobrir problemas de implementação e usabilidade de um recurso. Um protótipo deve ser implementado em um fork do repositório Roslyn e atender à seguinte barra:
Uma vez aprovado, um recurso deve ser totalmente implementado em Roslyn e totalmente especificado na especificação da linguagem, após o que a proposta é movida para a pasta apropriada para um recurso concluído, por exemplo, propostas C# 7.1.
AVISO LEGAL : Uma proposta ativa está sob consideração ativa para inclusão em uma versão futura da linguagem de programação C#, mas não há garantia de que será incluída na próxima ou em qualquer versão da linguagem. Uma proposta pode ser adiada ou rejeitada a qualquer momento durante qualquer fase do processo acima com base no feedback da equipe de design, comunidade, revisores de código ou testes.
Temos alguns marcos diferentes para problemas no repo:
As Reuniões de Design de Linguagem (LDMs) são realizadas pelo LDT e por convidados ocasionais, e são documentadas nas Notas da Reunião de Design na pasta de reuniões, organizadas em pastas por ano. A vida útil de uma nota de reunião de design é descrita em Meetings/README.md. Os LDMs são onde são tomadas decisões sobre versões futuras do C#, incluindo quais propostas trabalhar, como evoluir as propostas e se e quando adotá-las.
A especificação ECMA-334 atual pode ser encontrada em formato markdown no repositório C# Language Standard.
A implementação de referência da linguagem C# pode ser encontrada no repositório Roslyn. Este repositório também rastreia o status de implementação dos recursos de linguagem. Até recentemente, era também ali que os artefatos de design de linguagem eram rastreados. Por favor, aguarde um pouco enquanto avançamos nas propostas ativas.