我理解Enums如何在C#中工作,我得到了Flags属性带给表的内容.
我看到了这个问题,here.哪个推荐第一种味道,但没有提供任何理由/理由.
这两个定义的方式有什么不同,一个比另一个好吗?使用第一个synax代替第二个synax有什么好处?在定义Flags类型Enums时,我总是使用第二种风格……我一直都在做错吗?
[Serializable] [Flags] public enum SiteRoles { User = 1 << 0,Admin = 1 << 1,Helpdesk = 1 << 2 }
那是不一样的
[Serializable] [Flags] public enum SiteRoles { User = 1,Admin = 2,Helpdesk = 4 }
解决方法
第一个的主要优点是您不需要为每个标志计算正确的值,因为编译器会为您执行此操作.除此之外他们是一样的.