当前位置:  开发笔记 > 编程语言 > 正文

在枚举上覆盖int

如何解决《在枚举上覆盖int》经验,为你挑选了1个好方法。

我看到一些.NET 2.0代码看起来像这样:

 public enum abc : int
 {
  value1 = 1,
  value2 = 2,
  value3 = 4
 }

等等...

现在我知道标志枚举可以用于位值(如上所述,对吗?)所以你可以做| "或"等等,但不使用它的原因是什么?重写int有什么意义?

如果我设计一个用于选择多个值的枚举,我会使用flags属性而不是覆盖任何东西(我不明白).上述方法是什么网?

谢谢



1> Greg Beech..:

它不是"重写" int,它表示枚举的基础类型.默认是int这样实际上没有实现任何东西,但在某些情况下,您可能希望以枚举为基础long来存储更多标志,或者byte如果枚举周围有很多实例而节省空间,它只有少数值,但框架设计指南中的建议是使用,int除非你有充分的理由不这样做.

如果这是一个标志枚举,那么它应该标记[Flags],这似乎是这里的意图,所以遗漏看起来像一个错误.你仍然可以使用按位运算符组合值,即使它没有标记[Flags],但是从内存中我认为你得到编译器警告(或者它可能是一个FxCop警告,或者可能是一个ReSharper警告......).

推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有