C# 언어 디자인을 위한 공식 저장소에 오신 것을 환영합니다. 여기에서 새로운 C# 언어 기능이 개발, 채택 및 지정됩니다.
C#은 언어를 구현하는 Roslyn 프로젝트와 긴밀히 협력하여 C# 언어 디자인 팀(LDT)에 의해 설계되었습니다.
다음을 찾을 수 있습니다:
위 내용에서 버그나 결함을 발견한 경우 이를 제기할 수 있는 문제를 남겨주세요. 또는 더 나은 방법으로는 풀 요청을 통해 수정해 주시기 바랍니다.
그러나 새로운 기능 제안 의 경우 토론을 위해 제기하고 언어 디자인 팀 구성원("챔피언")이 초대한 경우 에만 문제 또는 끌어오기 요청으로 제안을 제출하십시오.
전체 설계 프로세스는 여기에 설명되어 있습니다. 간략한 개요는 다음과 같습니다.
언어 기능과 관련된 토론은 이 저장소에서 토론 형식으로 진행됩니다.
기능을 제안하고 현재 디자인 노트나 제안 등에 대해 토론하고 싶다면 새 토론 주제를 열어주세요.
짧고 주제에 관한 토론은 읽혀질 가능성이 훨씬 더 높습니다. 댓글을 50번으로 남겨두면 그 글을 읽는 사람은 극소수일 가능성이 높습니다. 토론을 더 쉽게 탐색하고 이점을 얻으려면 다음과 같은 몇 가지 경험 법칙을 준수하십시오.
Roslyn 분석기를 사용하면 특정 구문이 발생하지 않도록 하는 언어 제안을 얻을 수 있습니다. 기존 구문을 선택적으로 불법으로 만드는 제안은 언어 복잡성 증가를 방지하기 위해 언어 설계 위원회에서 거부됩니다.
C# LDM 구성원이 더 넓은 팀에서 고려할 가치가 있는 제안을 발견하면 이를 옹호할 수 있습니다. 즉, 해당 제안을 C# 언어 디자인 회의에 가져오게 됩니다. 제안은 항상 챔피언 이슈가 아닌 연결된 토론에서 논의됩니다. 우리는 항상 이 정책을 따르지는 않았으므로 많은 챔피언 문제에 대해 논의할 것입니다. 이제 문제에 대한 새로운 논의가 발생하지 않도록 문제를 잠급니다. 각 챔피언 문제에는 토론 링크가 있습니다.
제안은 토론, 실험 및 오프라인 디자인 작업을 통해 정보를 얻은 언어 디자인 회의의 결정의 결과로 발전합니다.
대부분의 경우 올바른 디자인을 결정하고 궁극적으로 해당 기능을 채택할지 여부를 결정하려면 기능의 프로토타입을 구현하고 공유해야 합니다. 프로토타입은 기능의 구현 및 유용성 문제를 모두 발견하는 데 도움이 됩니다. 프로토타입은 Roslyn 저장소의 포크에서 구현되어야 하며 다음 기준을 충족해야 합니다.
승인되면 기능은 Roslyn에서 완전히 구현되고 언어 사양에 완전히 지정되어야 하며, 그 후 제안은 완성된 기능(예: C# 7.1 제안)에 대한 적절한 폴더로 이동됩니다.
면책조항 : 활성 제안은 C# 프로그래밍 언어의 향후 버전에 포함하기 위해 적극적으로 고려 중이지만 최종적으로 언어의 다음 버전 또는 모든 버전에 포함된다는 보장은 없습니다. 제안은 디자인 팀, 커뮤니티, 코드 검토자 또는 테스트의 피드백을 기반으로 위 프로세스의 모든 단계에서 언제든지 연기되거나 거부될 수 있습니다.
리포지토리 문제에 대한 몇 가지 다른 마일스톤이 있습니다.
LDM(언어 디자인 회의)은 LDT와 가끔 초대된 손님이 주최하며 회의 폴더의 디자인 회의 노트에 문서화되어 연도별로 폴더로 구성됩니다. 디자인 회의록의 수명은 Meetings/README.md에 설명되어 있습니다. LDM은 작업할 제안, 제안을 발전시키는 방법, 채택 여부 및 시기를 포함하여 향후 C# 버전에 대한 결정이 이루어지는 곳입니다.
현재 ECMA-334 사양은 C# 언어 표준 리포지토리의 마크다운 형식에서 찾을 수 있습니다.
C# 언어의 참조 구현은 Roslyn 리포지토리에서 찾을 수 있습니다. 이 저장소는 언어 기능의 구현 상태도 추적합니다. 최근까지는 언어 디자인 아티팩트가 추적되는 곳이기도 했습니다. 활성화된 제안을 검토하는 동안 잠시 기다려 주시기 바랍니다.