Web Analytics

csharplang

⭐ 12082 stars Simplified Chinese by dotnet

C# 语言设计

加入 https://gitter.im/dotnet/csharplang 聊天 在 Discord 上聊天

欢迎来到 C# 语言设计的官方仓库。这里是开发、采纳和规范新 C# 语言特性的地方。

C# 由 C# 语言设计团队(LDT)设计,并与实现该语言的 Roslyn 项目紧密协作。

您可以在以下位置找到:

如果您发现上述内容中有错误或不足,请提交 issue 进行反馈,或者更好的是:提交 pull request 进行修复。

但对于新特性的提案,请先提出讨论,只有在被语言设计团队成员(即“champion”)邀请后,才以 issue 或 pull request 的形式正式提交提案。

完整的设计流程描述在此处。下面是简要概述。

讨论

与语言特性相关的讨论在本仓库的 Discussions 中进行。

如果您想建议一个特性,讨论当前的设计笔记或提案等,请开启一个新的 Discussion 主题

简洁且聚焦的讨论更有可能被阅读。如果您是第 50 个评论的人,可能只有极少数人会看到。为了让讨论更易于导航并受益,请遵守以下几点建议:

阻止特定语法出现的语言提案可通过 Roslyn 分析器 实现。仅使现有语法变为可选非法的提案将被语言设计委员会拒绝,以避免语言复杂性增加。

提案

当 C# LDM 的成员认为某个提案值得更广泛团队考虑时,他们可以担任 Champion,即他们会将其带到 C# 语言设计会议。提案总是在关联的讨论中讨论,而不是在 champion issue 中。我们并非一直遵循此政策,因此许多 champion issue 上会有讨论;我们现在会锁定 issue,防止新讨论发生。每个 champion issue 都会有讨论链接。

设计流程

提案 会根据语言设计会议的决策不断演进,这些决策受 discussions、实验和线下设计工作的影响。

在很多情况下,需要实现并分享一个特性的原型,以便确定合适的设计,最终决定是否采纳该特性。原型有助于发现特性的实现和可用性问题。原型应在 Roslyn 仓库 的分支中实现,并满足以下要求:

一旦获批,特性应在 Roslyn 中完整实现,并在 语言规范 中完整规范,此时提案会被移到已完成特性的相应文件夹,例如 C# 7.1 提案

免责声明:活跃提案正被积极考虑纳入未来的 C# 语言版本,但并不保证最终会被纳入下一个或任何版本。提案可在上述流程的任何阶段,基于设计团队、社区、代码审查者或测试的反馈,随时被推迟或拒绝。

里程碑

我们为仓库中的 issue 设置了几个不同的里程碑:

语言设计会议

语言设计会议(LDM)由 LDT 及偶尔邀请的嘉宾举行,会议记录存放于以年份为单位组织的 meetings 文件夹。设计会议记录的生命周期描述见 meetings/README.md。LDM 决定未来 C# 版本的相关事宜,包括要推进的提案、如何演进提案,以及是否及何时采纳。

语言规范

当前 ECMA-334 规范的 markdown 版本可在 C# 语言标准 仓库找到。

实现

C# 语言的参考实现可在 Roslyn 仓库 中找到。该仓库还跟踪了 语言特性实现状态。直到最近,语言设计相关的内容也在此跟踪。请在我们迁移活跃提案期间给予一些时间。 --- Tranlated By Open Ai Tx | Last indexed: 2025-06-15 ---