gpt4 book ai didi

c# - 我应该为枚举成员使用什么 AttributeTarget?

转载 作者:IT王子 更新时间:2023-10-29 03:57:28 25 4
gpt4 key购买 nike

我想像这样为枚举成员使用我的IsGPUBasedAttribute:

public enum EffectType
{
[IsGPUBased(true)]
PixelShader,

[IsGPUBased(false)]
Blur
}

但是编译器不允许我使用:

[AttributeUsage (AttributeTargets.Enum, AllowMultiple = false)]

将使用限制为枚举成员的正确 AttributeTarget 值是多少?

最佳答案

据我所知,没有专门针对枚举常量的。您能得到的最接近的可能是“Field”,它限制了对类或结构的字段成员的使用(出于属性的目的,枚举常量被视为)。

编辑: 从评论中提出“为什么”的解释,枚举常量就是这样,因此它们的值和用法是 embedded directly into the IL .因此,枚举声明实际上与创建具有静态常量成员的静态类定义没有太大区别:

public static class MyEnum
{
public const int Value1 = 0;
public const int Value2 = 1;
public const int Value3 = 2;
public const int Value4 = 3;
}

...唯一的区别是它派生自 System.Enum,它是一种值类型而不是引用类(您不能创建静态结构,也不能创建不可构造的结构)。

关于c# - 我应该为枚举成员使用什么 AttributeTarget?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5032774/

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