假设我有这个枚举:
[Flags] public enum SomeType { Val1 = 0,Val2 = 1,Val3 = 2,Val4 = 4,Val5 = 8,Val6 = 16,All = Val1 | Val2 | Val3 | Val4 | Val5 | Val6 }
和一些变量:
SomeType easyType = SomeType.Val1 | SomeType.Val2; SomeType complexType = SomeType.All;
如果我想循环访问第一个枚举的值,我可以简单地做:
foreach(string s in easyType.ToString().Split(',')) { ... }
然而,当我尝试对’complexType’应用相同的方法时,我得到值“All”,这当然是有效的,因为它也是枚举的可能值之一.但是,是否有一个整洁的方法来实际看到SomeType.All创建的值是什么?我知道我可以手动循环遍历所有的值:
if(complexType.HasFlag(ManualType.Val1) && ...
解决方法
原文地址:https://www.jb51.cc/csharp/93346.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。