Tag: 枚举

为什么Android不使用更多的枚举?

我开始非常喜欢在代码中使用C#和Java枚举,原因如下: 它们比整数,string或布尔标志组更安全得多。 他们导致更可读的代码。 将枚举设置为无效值比int或string更困难。 他们可以很容易地发现variables或参数的允许值。 我读过的所有东西都表明它们在C#和大多数JVM中的performance与整数一样好。 然而,Android框架有很多情况需要传递各种types的标志,但没有一个似乎使用枚举。 几个例子,我认为他们的使用将是有利的Toast.LENGTH_SHORT / Toast.LENGTH_LONG和View.GONE , View.VISIBLE等 为什么是这样? 在Dalvik枚举执行比简单的整数值更糟? 有没有其他的缺点我不知道?

在Java中以Enum方式将整数值存储为常量

我目前正在以下面的方式创build整型常量。 public class Constants { public static int SIGN_CREATE=0; public static int SIGN_CREATE=1; public static int HOME_SCREEN=2; public static int REGISTER_SCREEN=3; } 当我尝试以枚举的方式做到这一点 public enum PAGE{SIGN_CREATE,SIGN_CREATE,HOME_SCREEN,REGISTER_SCREEN} 而当我使用PAGE.SIGN_CREATE它应该返回1;

如何获得TypeScript枚举条目的名称?

我想知道如何迭代一个TypeScript枚举和每个枚举的符号名称。 例如, enum myEnum { entry1, entry2 } for (var entry in myEnum) { // use entry's name here, eg, "entry1" }

Java枚举方法

我想声明一个枚举方向,它有一个方法返回相反的方向(以下不是语法上正确的,即枚举不能被实例化,但它说明了我的观点)。 这在Java中可能吗? 这里是代码: public enum Direction { NORTH(1), SOUTH(-1), EAST(-2), WEST(2); Direction(int code){ this.code=code; } protected int code; public int getCode() { return this.code; } static Direction getOppositeDirection(Direction d){ return new Direction(d.getCode() * -1); } }

在int中枚举枚举的通用方法

有没有一种通用的方式来int enum在C++ enum ? 如果int落在一个enum范围内,它应该返回一个enum值,否则抛出一个exception 。 有没有一种方法来一般地写? 应该支持多于一个enum type 。 背景:我有一个外部枚举types, 不能控制源代码。 我想将这个值存储在数据库中并检索它。

检查一个给定的types是一个枚举

我正在为Json.NET编写JsonConverter,它应该允许我将任何枚举转换为由[Description]属性定义的string值。 例如: public enum MyEnum { [Description("Sunday")] Sunday, [Description("Monday")] Monday, [Description("Tuesday")] Tuesday, [Description("Wednesday")] Wednesday, [Description("Thursday")] Thursday, [Description("Friday")] Friday, [Description("Saturday")] Saturday } 我已经有了支持myEnum.Description()的代码,它显然会返回它的string描述。 在JsonConverter实现中,有这样的方法: public override bool CanConvert(Type objectType) { } 我想弄清楚如何确定objectType是一个Enum并返回true,以便转换器知道它可以转换这个对象。 由于我有很多Enum的,我不能明确地检查每一个,所以我希望有一个更通用的方法来完成这个。

在Django模型中指定一个mySQL ENUM

我如何去在Django模型中指定和使用ENUM?

如何从C#中的string获得枚举值?

我有一个枚举: public enum baseKey : uint { HKEY_CLASSES_ROOT = 0x80000000, HKEY_CURRENT_USER = 0x80000001, HKEY_LOCAL_MACHINE = 0x80000002, HKEY_USERS = 0x80000003, HKEY_CURRENT_CONFIG = 0x80000005 } 给定stringHKEY_LOCAL_MACHINE ,我怎么能得到一个值为0x80000002基于枚举?

如何从System.Enum转换为基本整数?

我想创build一个通用的方法来转换任何System.Enum派生types为其相应的整数值,而不是铸造,最好不分析string。 例如,我想要的是这样的: // Trivial example, not actually what I'm doing. class Converter { int ToInteger(System.Enum anEnum) { (int)anEnum; } } 但是这似乎不起作用。 Resharper报告说,您不能将“System.Enum”types的expression式转换为键入“int”。 现在我已经想出了这个解决scheme,但我宁愿有更有效的东西。 class Converter { int ToInteger(System.Enum anEnum) { return int.Parse(anEnum.ToString("d")); } } 有什么build议么?

C中的默认枚举值对所有编译器都是一样的吗?

当声明如下所示的枚举时,是否所有的C编译器在Linux和Windows系统上都将默认值设置为x=0 , y=1和z=2 ? typedef enum { x, y, z } someName;