加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

旗帜枚举混乱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
}

what does the [Flags] mean above?

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

var x = MyFlags.Alpha | MyFlags.Beta;

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读