作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
将属性放在类或方法的通用参数上是有效的(即编译和运行):
public class MyClass<[My] T>
{
private void MyMethod<[My] T>()
{}
}
public class MyAttribute : Attribute
{}
我从未见过这种用法,并且正在努力想出您为什么想要这样做的原因。
这只是语言规范的一个怪癖/副作用,还是有正当/有用的理由将属性放在这个位置?
最佳答案
出于同样的原因,属性对任何构造都是有用的;它们提供元数据,反射或其他后处理器可以使用这些元数据来做各种事情。例如,您可能有一个 AOP 系统,它使用类型参数上的属性来应用某些否则无法表达的运行时约束。我不确定是否有任何系统实际使用这些属性来做任何事情,但没有理由禁止它们作为元数据。
关于c# - 泛型参数的属性有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4854686/
我是一名优秀的程序员,十分优秀!