作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我想像这样为枚举成员使用我的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/
我是一名优秀的程序员,十分优秀!