嗨!这个主题是一个副本:为什么C#禁止通用属性类型?
我正在密切关注Roslyn编译器,并注意到可以使用泛型类型作为属性。因此,我的问题是:有没有一个好的C#泛型属性的例子?
编辑:
事实证明,它们实际上是不允许的:
我的实际问题是:为什么会这样?
编辑:
事实证明,它们实际上是不允许的:
error CS0698: A generic type cannot derive from 'Attribute' because it is an attribute class
我的实际问题是:为什么会这样?
Attribute
派生出一个通用类型是错误的:“通用类型不能从'Attribute'派生,因为它是一个属性类。” - Mike Zboray[Somthing<TheClass>("My text")]
代替笨拙的[Somthing(typeof(TheClass), "My text")]
,这样会更酷。在这种情况下,还可以搜索封闭/构造类型SomethingAttribute<TheClass>
的实例。当然,我们可以没有它而生活,但它并不是完全无用的。 - Jeppe Stig Nielsen