Questions tagged «enums»

由一组命名值组成的数据类型,这些命名值称为该类型的元素,成员或枚举数。

14
枚举应该以0还是1开头?
想象一下,我定义了以下枚举: public enum Status : byte { Inactive = 1, Active = 2, } 使用枚举的最佳实践是什么?它应该1以上述示例开头还是以0(没有显式值)开头,如下所示: public enum Status : byte { Inactive, Active }
136 c#  .net  enums 

13
ES6中的Java枚举
我正在用Javascript重建一个旧的Java项目,并意识到在JS中没有很好的枚举方法。 我能想到的最好的是: const Colors = { RED: Symbol("red"), BLUE: Symbol("blue"), GREEN: Symbol("green") }; Object.freeze(Colors); 的const保持Colors被重新分配,并冷冻它防止突变的键和值。我正在使用Symbols,所以它Colors.RED不等于0或除自身以外的其他任何符号。 这种配方有问题吗?有没有更好的办法? (我知道这个问题有点重复,但是以前的所有Q / A都已经很老了,ES6为我们提供了一些新功能。) 编辑: 另一个解决序列化问题的解决方案,但我认为仍然存在领域问题: const enumValue = (name) => Object.freeze({toString: () => name}); const Colors = Object.freeze({ RED: enumValue("Colors.RED"), BLUE: enumValue("Colors.BLUE"), GREEN: enumValue("Colors.GREEN") }); 通过使用对象引用作为值,您将获得与Symbols相同的避免碰撞的功能。

21
如何使用枚举值的自定义字符串格式设置枚举绑定组合框?
在Enum ToString中,描述了一种使用自定义属性的方法,DescriptionAttribute如下所示: Enum HowNice { [Description("Really Nice")] ReallyNice, [Description("Kinda Nice")] SortOfNice, [Description("Not Nice At All")] NotNice } 然后,您GetDescription使用以下语法调用function : GetDescription<HowNice>(NotNice); // Returns "Not Nice At All" 但是,当我只想用枚举的值填充ComboBox时GetDescription,这并没有真正帮助我,因为我不能强制ComboBox调用。 我要具有以下要求: 读取(HowNice)myComboBox.selectedItem将返回所选值作为枚举值。 用户应该看到用户友好的显示字符串,而不仅是枚举值的名称。因此NotNice,用户不会看到“ ”,而是会看到“ Not Nice At All”。 希望该解决方案将需要对现有枚举进行最少的代码更改。 显然,我可以为我创建的每个枚举实现一个新类,并覆盖它的ToString(),但是每个枚举都需要大量工作,因此我宁愿避免这种情况。 有任何想法吗? 哎呀,我什至会拥抱一个赏金:-)
135 c#  combobox  enums 




15
我应该使用#define,enum还是const?
在我正在研究的C ++项目中,我有一个标志类型的值,可以有四个值。这四个标志可以组合。标志描述数据库中的记录,可以是: 新纪录 删除记录 修改记录 现有记录 现在,对于每条记录,我希望保留此属性,因此可以使用一个枚举: enum { xNew, xDeleted, xModified, xExisting } 但是,在代码的其他位置,我需要选择对用户可见的记录,因此我希望能够将其作为单个参数传递,例如: showRecords(xNew | xDeleted); 因此,似乎我有三种可能的解决方法: #define X_NEW 0x01 #define X_DELETED 0x02 #define X_MODIFIED 0x04 #define X_EXISTING 0x08 要么 typedef enum { xNew = 1, xDeleted, xModified = 4, xExisting = 8 } RecordType; 要么 namespace RecordType …

30
有没有简单的方法将C ++枚举转换为字符串?
假设我们有一些命名的枚举: enum MyEnum { FOO, BAR = 0x50 }; 我用谷歌搜索的是一种脚本(任何语言),该脚本扫描项目中的所有标头并生成每个枚举具有一个功能的标头。 char* enum_to_string(MyEnum t); 以及类似这样的实现: char* enum_to_string(MyEnum t){ switch(t){ case FOO: return "FOO"; case BAR: return "BAR"; default: return "INVALID ENUM"; } } 陷阱实际上是带有类型定义的枚举和未命名的C风格的枚举。有人知道吗? 编辑:解决方案不应修改我的源,除了生成的函数。枚举都在API中,因此使用到目前为止提出的解决方案只是一种选择。
123 c++  string  enums  scripting 

2
在Java中,类内的枚举类型是静态的吗?
我似乎无法像从内部类内部那样从枚举内部访问周围类的实例成员。这是否意味着枚举是静态的?是否可以访问周围类的实例的范围,还是我必须在需要的地方将实例传递给枚举的方法? public class Universe { public final int theAnswer; public enum Planet { // ... EARTH(...); // ... // ... constructor etc. public int deepThought() { // -> "No enclosing instance of type 'Universe' is accessible in this scope" return Universe.this.theAnswer; } } public Universe(int locallyUniversalAnswer) { this.theAnswer = locallyUniversalAnswer; …
123 java  enums  scope 

11
在数据库中保存枚举的方法
将枚举保存到数据库中的最佳方法是什么? 我知道Java提供name()和valueOf()方法来枚举值转换为字符串和背部。但是还有其他(灵活的)选项来存储这些值吗? 有没有一种聪明的方法可以使枚举成为唯一的数字(ordinal()使用不安全)? 更新: 感谢您提供的所有出色且快速的答案!就像我怀疑的那样。 但是要注意“工具包”;那是一种方式。问题是我将不得不向创建的每个Enum类型添加相同的方法。那就是很多重复的代码,并且目前,Java不支持任何解决方案(Java枚举不能扩展其他类)。
123 java  database  enums 

28
将枚举绑定到WinForms组合框,然后进行设置
许多人回答了如何将枚举绑定到WinForms中的组合框的问题。就像这样: comboBox1.DataSource = Enum.GetValues(typeof(MyEnum)); 但是,如果无法设置要显示的实际值,那将毫无用处。 我努力了: comboBox1.SelectedItem = MyEnum.Something; // Does not work. SelectedItem remains null 我也尝试过: comboBox1.SelectedIndex = Convert.ToInt32(MyEnum.Something); // ArgumentOutOfRangeException, SelectedIndex remains -1 有谁知道如何做到这一点?
122 c#  .net  winforms  combobox  enums 

7
在Java枚举中重写valueof()和toString()
我enum中的值是需要在其中包含空格的单词,但是枚举的值中不能包含空格,因此它们都被堆砌了。我想覆盖toString()添加这些空格,我告诉它。 当我valueOf()在与添加空格相同的字符串上使用时,我还希望该枚举提供正确的枚举。 例如: public enum RandomEnum { StartHere, StopHere } 电话toString()上的RandomEnum,其值是StartHere返回字符串"Start Here"。调用valueof()相同的字符串("Start Here")将返回枚举值StartHere。 我怎样才能做到这一点?

1
了解scala枚举
我不得不说我不理解Scala枚举类。我可以从文档中复制粘贴该示例,但是我不知道发生了什么。 object WeekDay extends Enumeration { type WeekDay = Value val Mon, Tue, Wed, Thu, Fri, Sat, Sun = Value } import WeekDay._ 什么意思type WeekDay = Value,为什么我要写那个? 为什么val Mon = Value呢?那有什么意思? 为什么必须导入WeekDay 对象?和, 当我写的时候val day = WeekDay.Mon,为什么是打字WeekDay.Value,而不是打字WeekDay?
122 scala  enums 


4
在angular2视图模板中传递枚举
我们可以在angular2视图模板中使用枚举吗? <div class="Dropdown" dropdownType="instrument"></div> 传递字符串作为输入: enum DropdownType { instrument, account, currency } @Component({ selector: '[.Dropdown]', }) export class Dropdown { @Input() public set dropdownType(value: any) { console.log(value); }; } 但是如何通过枚举配置呢?我想要在模板中这样的东西: <div class="Dropdown" dropdownType="DropdownType.instrument"></div> 最佳做法是什么? 编辑:创建了一个示例: import {bootstrap} from 'angular2/platform/browser'; import {Component, View, Input} from 'angular2/core'; export enum DropdownType { instrument …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.