[AttributeUsage(AttributeTargets.Property)]
public class MyAttribute : Attribute
{
...
}

我希望在属性字段上同时使用此自定义属性,但不要在其他属性上使用此自定义属性。如何分配多个目标(AttributeTargets.PropertyAttributeTargets.Field)?还是不可能?
AttributeTargets.All不是我想要的。

最佳答案

您可以使用|(按位或)运算符来指定多个枚举值,从而指定多个目标,例如:

[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)]
public class MyAttribute : Attribute
{
    ...
}

按位OR运算符可与AttributeTargets枚举一起使用,因为它的值被分配了特定的方式,并用Flags属性进行了标记。

如果您愿意,可以在这里阅读更多内容:
  • C# Fundamentals: Combining Enum Values with Bit-Flags
  • Understand how bitwise operators work (C# and VB.NET examples)
  • 09-28 00:19