歡迎來到 C# 語言設計的官方儲存庫。這是開發、採用和指定新的 C# 語言功能的地方。
C# 是由 C# 語言設計團隊 (LDT) 與實現語言的 Roslyn 專案密切合作設計的。
您可以找到:
如果您發現上述內容中的錯誤或缺陷,請留下問題來提出它們,或者更好的是:提出修復它們的拉取請求。
但是,對於新功能提案,請提出討論,並且只有在語言設計團隊成員(“冠軍”)邀請的情況下才將提案作為問題或拉取請求提交。
這裡描述了完整的設計過程。下面是更簡短的概述。
有關語言功能的爭論在此存儲庫中以討論的形式進行。
如果您想建議某個功能、討論目前的設計說明或提案等,請開啟一個新的討論主題。
簡短且緊扣主題的討論更有可能被閱讀。如果您留下第 50 條評論,很可能只有少數人會閱讀它。為了使討論更容易導航並從中受益,請遵守一些經驗法則:
可以使用 Roslyn 分析器來實現防止特定語法發生的語言建議。僅使現有語法可選地非法的提案將被語言設計委員會拒絕,以防止增加語言複雜性。
當 C# LDM 的成員發現某個提案值得更廣泛的團隊考慮時,他們可以支持它,這意味著他們會將其帶到 C# 語言設計會議。提案總是在連結討論中討論,而不是在冠軍問題中討論。我們並不總是遵循這個政策,所以很多冠軍問題都會有討論;我們現在鎖定問題以防止對其進行新的討論。每個冠軍問題都會有討論連結。
提案的演變是語言設計會議決策的結果,這些決策是透過討論、實驗和離線設計工作提供的。
在許多情況下,有必要實現並共享某個功能的原型,以便得出正確的設計,並最終決定是否採用該功能。原型有助於發現功能的實作和可用性問題。原型應該在 Roslyn 儲存庫的分支中實現,並滿足以下條件:
一旦獲得批准,功能應在 Roslyn 中完全實現,並在語言規範中完全指定,隨後提案將被移至已完成功能的相應資料夾中,例如 C# 7.1 提案。
免責聲明:正在積極考慮將主動提案納入 C# 程式語言的未來版本,但不以任何方式保證最終包含在該語言的下一個或任何版本中。根據設計團隊、社群、程式碼審查者或測試的回饋,在上述過程的任何階段,提案可能隨時被推遲或拒絕。
對於儲存庫中的問題,我們有幾個不同的里程碑:
語言設計會議 (LDM) 由 LDT 和偶爾受邀的嘉賓舉行,並記錄在會議文件夾中的設計會議筆記中,按年份組織在文件夾中。 Meetings/README.md 中描述了設計會議記錄的生命週期。 LDM 是做出有關未來 C# 版本的決策的地方,包括要處理哪些提案、如何改進提案以及是否以及何時採用它們。
目前的 ECMA-334 規範可以在 C# 語言標準儲存庫中以降價形式找到。
C# 語言的參考實作可以在 Roslyn 儲存庫中找到。該存儲庫還追蹤語言功能的實現狀態。直到最近,這也是追蹤語言設計工件的地方。請給我們一點時間來處理積極的提案。