gpt4 book ai didi

c# - AttributeUsageAtribute 是如何实现的?

转载 作者:行者123 更新时间:2023-11-30 17:15:22 25 4
gpt4 key购买 nike

我有一个由两部分组成的问题。

首先,正如标题所说,有人知道AttributeUsageAtribute是如何实现的吗?它只能应用于派生自 Attribute 的类,否则会出错:属性“AttributeUsage”仅对从 System.Attribute 派生的类有效

其次,我能否编写一个类似的属性,可以应用于派生自特定类或实现特定接口(interface)的类?

最佳答案

1) 这是特定于编译器的

2) 你可以尝试以下技巧:

var attributes = typeof(A).GetCustomAttributes(A.GetDerivedFromAOnlyAttributeType(), false);
// using an attribute outside the A class

class A {
protected class DerivedFromAOnlyAttribute : Attribute { }
public static Type GetDerivedFromAOnlyAttributeType() {
return typeof(DerivedFromAOnlyAttribute);
}
}
[A.DerivedFromAOnly] //ok
class B : A {
}
[A.DerivedFromAOnly] //error
class C {
}

关于c# - AttributeUsageAtribute 是如何实现的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8099704/

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