Tag: 枚举

在TypeScript中,不同的枚举变体是如何工作的?

TypeScript有很多不同的方法来定义一个枚举: enum Alpha { X, Y, Z } const enum Beta { X, Y, Z } declare enum Gamma { X, Y, Z } declare const enum Delta { X, Y, Z } 如果我尝试在运行时使用Gamma的值,我得到一个错误,因为Gamma没有定义,但Delta或Alpha不是这种情况? 这里的const或者declare含义是什么? 还有一个preserveConstEnums编译器标志 – 这是如何与这些交互?

将方法应用于array / enumerable中的每个元素

这是我的数组: array = [:one,:two,:three] 我想将to_s方法应用于所有的数组元素,以获得array = ['one','two','three'] 。 我怎么能做到这一点(将枚举的每个元素转换为其他东西)?

在Java枚举上实现toString

Java似乎有可能写这样的东西: private enum TrafficLight { RED, GREEN; public String toString() { return //what should I return here if I want to return //"abc" when red and "def" when green? } } 现在,我想知道是否有可能在枚举的值为红色时返回toString方法“abc”,当它是绿色时返回“def”。 另外,是否有可能做类似于C#,你可以做到这一点? private enum TrafficLight { RED = 0, GREEN = 15 … } 我试过这个,但它,但我得到编译器错误。 谢谢

枚举到字典c#

我有网上search,但无法find我正在寻找的答案。 基本上我有以下枚举: public enum typFoo : int { itemA : 1, itemB : 2 itemC : 3 } 如何将此枚举转换为字典,以便它存储在下面的字典中 Dictionary<int,string> mydic = new Dictionary<int,string>(); 和mydic看起来像这样: 1, itemA 2, itemB 3, itemC 有任何想法吗?

如何检查枚举值是否有效?

我正在读取一个二进制文件的enum值,并希望检查值是否真的是enum值的一部分。 我该怎么做? #include <iostream> enum Abc { A = 4, B = 8, C = 12 }; int main() { int v1 = 4; Abc v2 = static_cast< Abc >( v1 ); switch ( v2 ) { case A: std::cout<<"A"<<std::endl; break; case B: std::cout<<"B"<<std::endl; break; case C: std::cout<<"C"<<std::endl; break; default : std::cout<<"no match found"<<std::endl; } […]

本地化枚举描述属性

在.net中本地化枚举描述的最佳方法是什么? (有关枚举描述示例,请参阅为枚举常量添加描述 ) 理想情况下,我希望使用ResourceManager和资源文件,以适应其他应用程序本地化。

Dart是否支持枚举?

Dart是否支持枚举? 例如: enum myFruitEnum { Apple, Banana } 对文档的粗略searchbuild议否。

在C#中枚举枚举枚举

有一些我在C#中无法理解的东西。 你可以将一个超范围的int转换成一个enum ,编译器不会退缩。 想象一下这个enum : enum Colour { Red = 1, Green = 2, Blue = 3 } 现在,如果你写: Colour eco; eco = (Colour)17; 编译器认为这很好。 运行时也是如此。 呃? 为什么C#团队决定做到这一点? 这个决定忽略了在这种情况下使用枚举的观点: void DoSomethingWithColour(Colour eco) { //do something to eco. } 在像C#这样的强types语言中,我想假设eco将始终保持合法的Colour值。 但这种情况并非如此。 程序员可以调用我的方法,赋值为17(如前面的代码片段),所以我的方法中的代码不能假定eco拥有合法的Colour值。 我需要明确地进行testing,并按照我的要求处理exception值。 为什么是这样? 在我看来,如果在编译时int值超出范围的情况下编译器发出错误(甚至是警告)消息将会好得多。 否则,运行时应该在赋值语句处引发exception。 你怎么看? 这是为什么? (注意,这是我在博客上多年前发布的一个问题,但没有提供任何信息。

没有值的Java枚举和实用程序类与私有构造函数之间的区别

实用类的一个常见事情是给它们一个私有的构造函数 : public final class UtilClass { private UtilClass() {} … } 但不幸的是,一些工具不喜欢那个私人的构造函数。 他们可能会警告说,它从来没有在课堂上被调用,它没有被testing覆盖,该块不包含评论,等等。 如果你这样做,很多警告消失: public enum UtilClass {; … } 我的问题是:除了对未来开发者的无休止的仇恨外,在没有值的枚举和在Java中有私有构造函数的类之间有什么重要的区别? 请注意,我并不是问一个Java枚举与一个具有公共静态final字段的类的优点是什么? 。 我不是决定一个事物列表应该是一堆常量还是一个枚举,我决定把一堆函数放在一个无构造函数的类或一个无价值的枚举中。 另外请注意,我其实不想这样做。 我只是想把这些权衡作为一般语言知识的一部分。 例如,使用枚举来污染自动完成,像UtilClass.values()这样的无用方法。 还有什么其他缺点? 上升空间?

如何获得在C#中的枚举索引值

在C中, enums在内部等于一个整数。 所以我们可以把enum数据types当作整数来处理。 如何实现与C#一样?