gpt4 book ai didi

c# - 泛型参数的属性有什么用?

转载 作者:可可西里 更新时间:2023-11-01 03:01:21 25 4
gpt4 key购买 nike

将属性放在类或方法的通用参数上是有效的(即编译和运行):

public class MyClass<[My] T>
{
private void MyMethod<[My] T>()
{}
}

public class MyAttribute : Attribute
{}

我从未见过这种用法,并且正在努力想出您为什么想要这样做的原因。

这只是语言规范的一个怪癖/副作用,还是有正当/有用的理由将属性放在这个位置?

最佳答案

出于同样的原因,属性对任何构造都是有用的;它们提供元数据,反射或其他后处理器可以使用这些元数据来做各种事情。例如,您可能有一个 AOP 系统,它使用类型参数上的属性来应用某些否则无法表达的运行时约束。我不确定是否有任何系统实际使用这些属性来做任何事情,但没有理由禁止它们作为元数据。

关于c# - 泛型参数的属性有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4854686/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com