旗帜枚举混乱C#

旗帜枚举混乱C#,第1张

概述根据我的代码a = 1,b = 2,c = 3等我认为该标志会使a = 1,b = 2,c = 4等 [Flags]public enum someEnum { none, a, b, c, d, e, f, } 我如何得到我的意图(c = 4,e = 8)?什么[旗帜]意味着什么? 您可以为枚举指定值,这是标志情况所需的: [Flags]enum MyFlags { Alpha=1, 根据我的代码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}

what does the [Flags] mean above?

这意味着运行时将支持对值的按位运算.它对编译器生成的值没有任何影响.例如.如果你这样做

var x = MyFlags.Alpha | MyFlags.Beta;

使用Flags属性,x.ToString()的结果是“Alpha,Beta”.没有属性,它将是3.也改变解析行为.

编辑:更新了更好的名称,并且编译器不会在非标记属性上使用按位 *** 作,至少不是C#3或4(对我来说是新闻).

总结

以上是内存溢出为你收集整理的旗帜枚举混乱C#全部内容,希望文章能够帮你解决旗帜枚举混乱C#所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1224704.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存