Tag: 枚举

用Java中的int值枚举

什么是C#的Java相当于: enum Foo { Bar = 0, Baz = 1, Fii = 10, }

在VB.NET中将stringparsing为Enum值

如何parsing一个string在VB.NET枚举值? 示例我有这个枚举: Public Enum Gender NotDefined Male Female End Enum 如何将string“Male”转换为Gender枚举的Male值?

使用匿名枚举

匿名enum声明的目的是什么,例如: enum { color = 1 }; 为什么不只是声明int color = 1 ?

如何获得一个枚举的值到一个SelectList

想象一下,我有这样一个枚举(就像一个例子): public enum Direction{ Horizontal = 0, Vertical = 1, Diagonal = 2 } 我怎么能写一个例程来获取这些值到一个System.Web.Mvc.SelectList,因为枚举的内容将来可能会改变? 我想要获取每个枚举名称作为选项文本,其值作为值文本,如下所示: <select> <option value="0">Horizontal</option> <option value="1">Vertical</option> <option value="2">Diagonal</option> </select> 这是迄今为止我能想到的最好的: public static SelectList GetDirectionSelectList() { Array values = Enum.GetValues(typeof(Direction)); List<ListItem> items = new List<ListItem>(values.Length); foreach (var i in values) { items.Add(new ListItem { Text = Enum.GetName(typeof(Direction), i), Value = i.ToString() […]

如何创buildtypes安全的枚举?

在C中使用枚举来实现types安全是有问题的,因为它们实质上只是整数。 枚举常量实际上被定义为由标准的inttypes。 为了达到某种types的安全性,我使用这样的指针做技巧: typedef enum { BLUE, RED } color_t; void color_assign (color_t* var, color_t val) { *var = val; } 因为指针比值更严格的types规则,所以这可以防止这样的代码: int x; color_assign(&x, BLUE); // compiler error 但是这并不妨碍这样的代码: color_t color; color_assign(&color, 123); // garbage value 这是因为枚举常量本质上只是一个int并可以隐式地分配给一个枚举variables。 有没有办法写这样一个函数或macroscolor_assign ,甚至可以实现完整的types安全枚举常量?

Convert.ChangeType并转换为枚举?

我从数据库中获得了一个Int16值,并且需要将其转换为枚举types。 不幸的是,这个代码层完全不了解对象,只知道通过reflection可以收集的东西。 因此,它最终会调用Convert.ChangeType失败,并产生无效的转换exception。 我发现我认为是一个臭的解决方法,就像这样: String name = Enum.GetName(destinationType, value); Object enumValue = Enum.Parse(destinationType, name, false); 有没有更好的方法,以便我不必通过这个string操作? 这是一个简短但完整的程序,如果有人需要实验,可以使用这个程序: using System; public class MyClass { public enum DummyEnum { Value0, Value1 } public static void Main() { Int16 value = 1; Type destinationType = typeof(DummyEnum); String name = Enum.GetName(destinationType, value); Object enumValue = Enum.Parse(destinationType, name, false); Console.WriteLine("" […]

在hibernate中将枚举映射到string

我有一个类Hibernate模型: @Entity @Table(name = "category") public class Category { @Id @GeneratedValue(strategy=GenerationType.AUTO) @Column(name = "id") private long id; @Column(name = "type") private String type; 其中有一个stringtypes字段。 另外我有一个Java枚举代表一个类别的types: public enum CategoryType { INCOME, OUTCOME; } 我想用来代替stringtypes。 SQL在varchar参数中接受两个不同的值: CategoryIncome或者CategoryOutcome 。 我希望类模型类接受一个枚举variables – 并将其映射到string,每当hibernate请求它。 可能吗?

如何使用NHibernate持久枚举

有没有办法使用NHibernate持久枚举数据库? 这是有一个表中的代码和枚举中的每个值的名称。 我想保持枚举没有一个实体,但仍然有一个外键(枚举的int表示)从所有其他引用实体枚举的表。

枚举的初始值

我有一个属性是一个枚举类 枚举是 /// <summary> /// All available delivery actions /// </summary> public enum EnumDeliveryAction { /// <summary> /// Tasks with email delivery action will be emailed /// </summary> Email, /// <summary> /// Tasks with SharePoint delivery action /// </summary> SharePoint } 当我创build这个类的实例,在代码中的NOWHERE,我指定的枚举字段的值,但它似乎默认为enumlist中的第一个项目,而不是一个空值,这是如何枚举的工作? 怎么可能确保枚举得到某种空值,如果它没有设置,我不希望它默认枚举的第一个值。

我的枚举不是一个类或命名空间

嗨,我有文件称为MyCode.h和MyCode.cpp 在MyCode.h中我已经声明 enum MyEnum {Something = 0, SomethingElse = 1}; class MyClass { MyEnum enumInstance; void Foo(); }; 然后在MyCode.cpp中: #include "MyCode.h" void MyClass::Foo() { enumInstance = MyEnum::SomethingElse; } 但使用g ++编译时出现错误“MyEnum”不是类或名称空间… (在MS VS2010中工作正常,但不是Linux的G + +) 有任何想法吗? 谢谢Thomas