首页 > 后端开发 > C++ > 为什么 C# 中不允许使用通用属性类型?

为什么 C# 中不允许使用通用属性类型?

Linda Hamilton
发布: 2025-01-18 23:02:45
原创
508 人浏览过

Why Are Generic Attribute Types Not Allowed in C#?

C# 对泛型属性的限制:一个无法解释的谜团

尝试在 C# 属性中使用泛型类型会导致令人困惑的编译时错误。 例如:

[Validates<string>]
public static class StringValidation
{
    // ...
}
登录后复制

这与 Java 等语言形成鲜明对比,Java 等语言是允许这种用法的。 然而,C# 坚决禁止泛型属性类型。具体原因尚不清楚。

ECMA C# 2 和 3 规范提到了此限制,但没有提供任何解释。 前 Microsoft 开发人员和 C# 语言设计师 Eric Lippert 表示,没有具体的、记录在案的理由。 该决定可能源于语言和编译器简单性的优先考虑,将开发工作重点放在具有明显更高价值的功能上。

因此,C# 中禁止泛型属性类型是该语言的一个值得注意且可能具有限制性的特征,缺乏明确且公开的理由。

以上是为什么 C# 中不允许使用通用属性类型?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板