Tag: 枚举

如何轻松地将c ++枚举映射到string

我在使用一些库头文件中有一堆枚举types,我想有一种方法将枚举值转换为用户string – 反之亦然。 RTTI不会为我做,因为'用户string'需要比枚举更可读。 一个暴力解决scheme将是一堆这样的function,但我觉得这有点太C了。 enum MyEnum {VAL1, VAL2,VAL3}; String getStringFromEnum(MyEnum e) { switch e { case VAL1: return "Value 1"; case VAL2: return "Value 2"; case VAL1: return "Value 3"; default: throw Exception("Bad MyEnum"); } } 我有一个直觉,认为有一个使用模板的优雅的解决scheme,但我不能完全把我的头。 更新:感谢您的build议 – 我应该明确指出,枚举是在第三方库头中定义的,所以我不想改变它们的定义。 我现在的直觉就是避免使用模板,做这样的事情: char * MyGetValue(int v, char *tmp); // implementation is trivial #define ENUM_MAP(type, strings) […]

在Android中使用枚举

我几乎完成了一个计算活动,我正在与Android的我的应用程序。 我尝试创build一个性别枚举,但出于某种原因得到语法错误,插入“EnumBody”来完成EnumDeclaration。 public static enum Gender { static { Female = new Gender("Female", 1); Gender[] arrayOfGender = new Gender[2]; arrayOfGender[0] = Male; arrayOfGender[1] = Female; ENUM$VALUES = arrayOfGender; } } 我也试过没有静态{},但我得到相同的语法错误。

C ++枚举是签名还是未签名?

C ++枚举是签名还是未签名? 通过扩展来validation一个input是安全的,通过检查它是否是你的最大值,而忽略> =你的最小值(假设你从0开始,并加1)?

如何在C#中传递多个枚举值?

有时在阅读别人的C#代码时,我看到一个方法将接受多个枚举值在一个单一的参数。 我一直认为这是一种整洁,但从来没有看过它。 那么现在我想我可能有这个需要,但是不知道如何去做 设置方法签名来接受这个 使用方法中的值 定义枚举 实现这样的事情。 在我的特殊情况下,我想使用System.DayOfWeek,它被定义为: [Serializable] [ComVisible(true)] public enum DayOfWeek { Sunday = 0, Monday = 1, Tuesday = 2, Wednesday = 3, Thursday = 4, Friday = 5, Saturday = 6 } 我希望能够将一个或多个DayOfWeek值传递给我的方法。 我将能够使用这个特定的枚举吗? 我如何做上述3件事?

在Java中定义错误代码/string的最佳方法?

我正在用Java编写一个Web服务,我想弄清楚定义错误代码及其相关错误string的最佳方法 。 我需要将数字错误代码和错误string分组在一起。 错误代码和错误string都将被发送到访问Web服务的客户端。 例如,发生SQLException时,我可能需要执行以下操作: // Example: errorCode = 1, // errorString = "There was a problem accessing the database." throw new SomeWebServiceException(errorCode, errorString); 客户端程序可能会显示消息: “出现错误#1:访问数据库时出现问题。” 我的第一个想法是使用错误代码的Enum并重写toString方法来返回错误string。 这是我想出来的: public enum Errors { DATABASE { @Override public String toString() { return "A database error has occured."; } }, DUPLICATE_USER { @Override public String toString() { return […]

如何获得Swift中的枚举值的名称?

如果我有一个枚举Integer原始值: enum City: Int { case Melbourne = 1, Chelyabinsk, Bursa } let city = City.Melbourne 如何将city值转换为stringMelbourne ? 这种types的名字反省在语言中可用吗? 像(这个代码不会工作): println("Your city is \(city.magicFunction)") > Your city is Melbourne

有没有办法来检查int是否合法枚举在C#中?

我读过几个SOpost,似乎最基本的操作是失踪。 public enum LoggingLevel { Off = 0, Error = 1, Warning = 2, Info = 3, Debug = 4, Trace = 5 }; if (s == "LogLevel") { _log.LogLevel = (LoggingLevel)Convert.ToInt32("78"); _log.LogLevel = (LoggingLevel)Enum.Parse(typeof(LoggingLevel), "78"); _log.WriteDebug(_log.LogLevel.ToString()); } 这不会导致例外,所以很高兴能存储78 。 有没有办法来validation一个值进入枚举?

Java的枚举相对于具有公共静态final字段的类有什么优势?

我对C#非常熟悉,但开始更多地使用Java。 我期望知道Java中的枚举与C#中的枚举基本相同,但显然情况并非如此。 最初我很高兴得知Java枚举可能包含多个似乎非常有利的数据片段( http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html )。 然而,从那以后,我发现了许多在C#中微不足道的function,比如能够轻松地为枚举元素指定一个特定的值,并因此能够将整数转换为枚举而无需花费大量精力即将整数值转换为匹配的Java Enum )。 所以我的问题是:有一堆公共静态最终字段的Java枚举有什么好处? 还是只是提供更紧凑的语法? 编辑:让我更清楚。 什么是Java枚举相对于一堆相同types的公共静态最终字段的好处? 例如,在第一个链接的行星例子中,使用这些公共常量的类的枚举有什么优势: public static final Planet MERCURY = new Planet(3.303e+23, 2.4397e6); public static final Planet VENUS = new Planet(4.869e+24, 6.0518e6); public static final Planet EARTH = new Planet(5.976e+24, 6.37814e6); public static final Planet MARS = new Planet(6.421e+23, 3.3972e6); public static final Planet JUPITER = […]

PostgreSQL – 更新枚举types

我有一个使用枚举types的字段。 我希望更新枚举有一个额外的字段(我不想删除任何东西,只是添加一个新的标签)。 什么是最简单的方法来做到这一点?

C#遍历一个枚举? (索引System.Array)

我有以下代码: // Obtain the string names of all the elements within myEnum String[] names = Enum.GetNames( typeof( myEnum ) ); // Obtain the values of all the elements within myEnum Array values = Enum.GetValues( typeof( myEnum ) ); // Print the names and values to file for ( int i = 0; i < names.Length; […]