旗帜枚举混乱C#
发布时间:2020-12-15 19:42:37 所属栏目:百科 来源:网络整理
导读:根据我的代码a = 1,b = 2,c = 3等我认为该标志会使a = 1,c = 4等 [Flags]public enum someEnum { none,a,b,c,d,e,f,} 我如何得到我的意图(c = 4,e = 8)?什么[旗帜]意味着什么? 解决方法 您可以为枚举指定值,这是标志情况所需的: [Flags]enum MyFlags { Al
根据我的代码a = 1,b = 2,c = 3等我认为该标志会使a = 1,c = 4等
[Flags] public enum someEnum { none,a,b,c,d,e,f,} 我如何得到我的意图(c = 4,e = 8)?什么[旗帜]意味着什么? 解决方法
您可以为枚举指定值,这是标志情况所需的:
[Flags] enum MyFlags { Alpha=1,Beta=2,Gamma=4,Delta=8 }
这意味着运行时将支持对值的按位运算.它对编译器生成的值没有任何影响.例如.如果你这样做 var x = MyFlags.Alpha | MyFlags.Beta; 使用Flags属性,x.ToString()的结果是“Alpha,Beta”.没有属性,它将是3.也改变解析行为. 编辑:更新了更好的名称,并且编译器不会在非标记属性上使用按位操作,至少不是C#3或4(对我来说是新闻). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |