C# 缺乏建構子類型推論:深入探討
C# 強大的型別推論系統是泛型方法的福音,特別是省略了建構函式型別推論。 本文探討了這項遺漏背後的原因。
概念障礙
雖然看似簡單,但實作建構函式型別推論會帶來顯著的重載解析複雜性。 語句 new Foo(bar)
可能會遇到目前範圍內具有不同泛型參數的多個 Foo
類型。 確定最合適的構造函數需要對類型推斷機制進行重大修改。 保持向後相容性使事情變得更加複雜,需要優先考慮非泛型類型建構函數。
實際權衡
儘管有明顯的優勢,但實現構造函數類型推論會帶來大量的開發成本。 C# 開發人員必須仔細評估與其他功能優先順序相比的潛在好處。 此外,現成的工廠模式提供了一種可行的替代方案,減少了對此特定功能的感知需求。
歷史背景
儘管多次提出建議,建構函式型別推論始終處於較低優先權。 複雜的設計挑戰加上有效解決方法的存在,迄今為止阻礙了其被納入。
狀態更新
雖然考慮了 C# 6,但建構子型別推論最終被排除在最終規範之外。
以上是為什麼 C# 不支援構造函數型別推斷?的詳細內容。更多資訊請關注PHP中文網其他相關文章!