C# 對泛型屬性的限制:一個無法解釋的謎團
嘗試在 C# 屬性中使用泛型類型會導致令人困惑的編譯時錯誤。 例如:
<code class="language-csharp">[Validates<string>] public static class StringValidation { // ... }</code>
這與 Java 等語言形成鮮明對比,Java 等語言是允許這種用法的。 然而,C# 堅決禁止泛型屬性類型。具體原因尚不清楚。
ECMA C# 2 和 3 規範提到了此限制,但沒有提供任何解釋。 前 Microsoft 開發人員和 C# 語言設計師 Eric Lippert 表示,沒有具體的、記錄在案的理由。 該決定可能源自於語言和編譯器簡單性的優先考慮,將開發工作重點放在具有明顯更高價值的功能上。
因此,C# 中禁止泛型屬性類型是該語言的一個值得注意且可能具有限制性的特徵,缺乏明確且公開的理由。
以上是為什麼在 C# 中不允許使用通用屬性類型?的詳細內容。更多資訊請關注PHP中文網其他相關文章!