首頁 > 後端開發 > C++ > 為什麼在 C# 中不允許使用通用屬性類型?

為什麼在 C# 中不允許使用通用屬性類型?

Linda Hamilton
發布: 2025-01-18 23:02:45
原創
494 人瀏覽過

Why Are Generic Attribute Types Not Allowed in C#?

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板