说我有一个TypeScript枚举,MyEnum,如下所示: enum MyEnum { First, Second, Third } 在TypeScript 0.9.5中生成枚举值数组的最佳方法是什么? 例: var choices: MyEnum[]; // or Array<MyEnum> choices = MyEnum.GetValues(); // plans for this? choices = EnumEx.GetValues(MyEnum); // or, how to roll my own?
我有一个枚举类有两个值,我想创build一个方法接收一个值,并返回另一个。 我也想维护types安全(这就是为什么我使用枚举类而不是枚举)。 http://www.cplusplus.com/doc/tutorial/other_data_types/没有提及任何方法但是,我的印象是,任何types的类都可以有方法。
在我的应用程序中,我有一个非常大的权限集合,用Flags枚举表示。 它正在快速接近长数据types的实际上限。 我不得不提出一个策略,以尽快过渡到不同的结构。 现在,我可以将这个列表分解成更小的部分,但是,根据我们的应用程序布局,这已经只是我们应用程序整体权限的一个子集。 在pipe理权限时,我们广泛使用这种区别作为显示目的,如果我能够避免,我宁愿不必在此时重新访问该代码。 有其他人遇到这个问题? 你是怎么过去的? 一般的例子都很好,但我最感兴趣的是ac#的具体例子,如果有任何语言特定的技巧,我可以用来完成工作。 可能不是必需的,但这里是目前为我正在处理的应用程序部分定义的权限列表。 //Subgroup WebAgent [Flags] public enum WebAgentPermission : long { [DescriptionAttribute("View Rule Group")] ViewRuleGroup = 1, [DescriptionAttribute("Add Rule Group")] AddRuleGroup = 2, [DescriptionAttribute("Edit Rule Group")] EditRuleGroup = 4, [DescriptionAttribute("Delete Rule Group")] DeleteRuleGroup = 8, [DescriptionAttribute("View Rule")] ViewRule = 16, [DescriptionAttribute("Add Rule")] AddRule = 32, [DescriptionAttribute("Edit Rule")] EditRule […]
说我有一个枚举, public enum Colours { Red, Blue } 我可以看到parsing它们的唯一方法就是: string colour = "Green"; var col = (Colours)Enum.Parse(typeOf(Colours),colour); 这将抛出System.ArgumentException,因为“绿色”不是“ Colours枚举的成员。 现在我真的讨厌try / catch中的包装代码,有没有更好的方法来做到这一点,不涉及我遍历每个Colours枚举,并做一个string与colour比较?
我怎样才能输出在C + + 11中的enum class的值? 在C + + 03中是这样的: #include <iostream> using namespace std; enum A { a = 1, b = 69, c= 666 }; int main () { A a = A::c; cout << a << endl; } 在c ++ 0x这个代码不能编译 #include <iostream> using namespace std; enum class A { a = 1, […]
我想用一个枚举的所有可能的值来填充一个列表 由于我最近爱上了EnumSet ,我利用了allOf() EnumSet<Something> all = EnumSet.allOf( Something.class); List<Something> list = new ArrayList<>( all.size()); for( Something s : all) { list.add( s); } return list; 有没有更好的方法 (如在非混淆的class轮),以达到相同的结果?
在vs2008中,是否可以编写适用于任何枚举的扩展方法。 我知道你可以针对特定的枚举编写扩展方法,但我希望能够使用单个扩展方法进行每个枚举。 这可能吗?
枚举名称是在Java中实现的吗? 即保证enum1.name() == enum2.name()在相同名称的情况下? 将enum.name()与保证被实现的string进行比较是安全的。
我在我的一个类中使用方法中的完全限定的名称。 但我收到编译器警告说: “警告C4482:非标准扩展使用:在合格的名称中使用枚举'Foo'” 。 在C ++中,我们是否需要使用没有限定名称的枚举? 但海事组织,这看起来很丑。 有什么想法吗?
我想知道在Java 8中处理枚举值的最好方法是什么。 特别是当你需要获取所有的值并将其添加到某个地方时,例如,假设我们有以下枚举: public enum Letter { A, B, C, D; } 我当然可以做到以下几点: for (Letter l : Letter.values()) { foo(l); } 但是,我也可以将以下方法添加到枚举定义中: public static Stream<Letter> stream() { return Arrays.stream(Letter.values()); } 然后从上面replace为: Letter.stream().forEach(l -> foo(l)); 这种方法是否正确,或者在devise或性能方面有问题? 另外,为什么不枚举有一个stream()方法?