adr*_*nks 17 .net c# generics attributes
它是有效的(即它编译并运行)将属性放在类或方法的泛型参数上:
public class MyClass<[My] T>
{
private void MyMethod<[My] T>()
{}
}
public class MyAttribute : Attribute
{}
Run Code Online (Sandbox Code Playgroud)
我从来没有见过这种情况,并且正在努力想出一个你为什么要这么做的理由.
它只是语言规范的怪癖/副作用,还是有一个有效/有用的理由将属性置于这个位置?
Dan*_*ant 13
出于同样的原因,属性对任何构造都有用; 他们提供的元数据可以被Reflection或其他后处理器用来做各种事情.例如,您可能有一个AOP系统使用类型参数上的属性来应用某些运行时约束,否则这些约束将无法表达.我不确定是否有任何系统实际使用这些属性做任何事情,但没有理由不允许它们作为元数据.
归档时间: |
|
查看次数: |
1895 次 |
最近记录: |