Questions tagged «enums»

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

15
如何使枚举符合Swift中的协议?
Swift文档说,类,结构和枚举都可以符合协议,我可以说它们都符合。但是我无法让枚举的行为完全类似于类和结构示例: protocol ExampleProtocol { var simpleDescription: String { get set } mutating func adjust() } class SimpleClass: ExampleProtocol { var simpleDescription: String = "A very simple class." var anotherProperty: Int = 69105 func adjust() { simpleDescription += " Now 100% adjusted." } } var a = SimpleClass() a.adjust() let aDescription …

8
如何从System.Enum转换为基本整数?
我想创建一个通用方法,用于将任何System.Enum派生类型转换为其对应的整数值,而无需强制转换,并且最好不解析字符串。 例如,我想要的是这样的: // Trivial example, not actually what I'm doing. class Converter { int ToInteger(System.Enum anEnum) { (int)anEnum; } } 但这似乎不起作用。Resharper报告您不能将类型为“ System.Enum”的表达式转换为类型为“ int”的表达式。 现在我想出了这个解决方案,但我希望有一些更有效的方法。 class Converter { int ToInteger(System.Enum anEnum) { return int.Parse(anEnum.ToString("d")); } } 有什么建议?

8
枚举和匹配属性的C#命名约定
我经常发现自己实现了一个类,该类维护作为枚举的某种状态属性:我有一个Status枚举和一个Status类型的Status属性。我应该如何解决此名称冲突? public class Car { public enum Status { Off, Starting, Moving }; Status status = Status.Off; public Status Status // <===== Won't compile ===== { get { return status; } set { status = value; DoSomething(); } } } 如果Status枚举对于不同类型是通用的,那么我将其放在类之外,这样就可以解决问题。但是Status仅适用于Car,因此在类外声明该枚举没有意义。 在这种情况下,您使用什么命名约定? NB:这个问题在对这个问题的答案的评论中被部分辩论。由于这不是主要问题,因此可见性不高。 编辑:菲利普·埃克伯格(Filip Ekberg)针对特定的“状态”案例提出了IMO出色的解决方法。但是,我会很感兴趣地阅读有关枚举/属性名称不同的解决方案的信息,例如Michael Prewecki的答案。 EDIT2(2010年5月):我最喜欢的解决方案是按照Chris S的建议对枚举类型名称进行复数。根据MS准则,此名称仅应用于标记枚举。但是我变得越来越喜欢它。我现在也将其用于常规枚举。




7
我应该严格避免在Android上使用枚举吗?
我曾经Bundle在如下所示的接口中一起定义了一组相关的常量(如键): public interface From{ String LOGIN_SCREEN = "LoginSCreen"; String NOTIFICATION = "Notification"; String WIDGET = "widget"; } 这为我提供了一种更好的方式将相关常量分组在一起,并通过进行静态导入(而非实现)来使用它们。我知道Android框架也使用像一样的常量Toast.LENTH_LONG,View.GONE。 但是,我经常感到,Java Enums提供代表常数的更好,更强大的方法。 但是使用enumson 会有性能问题Android吗? 经过一番研究,我最终陷入了混乱。从这个问题中, 从Android的性能提示中删除了“避免枚举,您只需要整数”吗?很明显,Google它已从性能提示中删除了“避免枚举”,但是从官方培训文档中请注意内存开销部分,它明确指出:“枚举通常需要的内存是静态常量的两倍以上。您应严格避免在Android上使用枚举。”这仍然有效吗?(例如Java1.6以后的版本) 还有一个问题,我观察到的是发送enums跨intents使用Bundle我应该序列化给他们(即putSerializable(),我认为一个昂贵的操作比较原始的putString()方法沉绵enums免费提供的话)。 有人可以说清楚哪一种是代表同一个人的最佳方法Android吗?我应该严格避免使用enumson Android吗?
92 java  android  enums 


1
在冬眠中将枚举映射到字符串
我有一个类别休眠模型: @Entity @Table(name = "category") public class Category { @Id @GeneratedValue(strategy=GenerationType.AUTO) @Column(name = "id") private long id; @Column(name = "type") private String type; 其中有一个类型字符串字段。另外,我还有一个Java枚举,它表示类别的类型: public enum CategoryType { INCOME, OUTCOME; } 我想用它代替字符串类型。SQL在varchar参数中接受两个不同的值:CategoryIncome或CategoryOutcome。我希望Category模型类接受一个枚举变量-并在休眠状态下以某种方式将其映射到字符串。 可能吗?
92 java  hibernate  enums 

10
如何获取C#中所有枚举值的数组?
我有一个枚举,我想显示所有可能的值。有没有办法获取该枚举的所有可能值的数组或列表,而不是手动创建此类列表?例如,如果我有一个枚举: public enum Enumnum { TypeA, TypeB, TypeC, TypeD } 我将如何获得一个List<Enumnum>包含{ TypeA, TypeB, TypeC, TypeD }?
91 c#  enums 

11
如何以编程方式枚举枚举类型?
假设我有一个TypeScript enum,MyEnum如下所示: enum MyEnum { First, Second, Third } TypeScript 0.9.5中生成enum值数组的最佳方法是什么?例: var choices: MyEnum[]; // or Array<MyEnum> choices = MyEnum.GetValues(); // plans for this? choices = EnumEx.GetValues(MyEnum); // or, how to roll my own?
90 enums  typescript 

12
任何人都知道缺少枚举泛型约束的好解决方法吗?
我想要做的是这样的:我有带有组合标记值的枚举。 public static class EnumExtension { public static bool IsSet<T>( this T input, T matchTo ) where T:enum //the constraint I want that doesn't exist in C#3 { return (input & matchTo) != 0; } } 因此,我可以这样做: MyEnum tester = MyEnum.FlagA | MyEnum.FlagB if( tester.IsSet( MyEnum.FlagA ) ) //act on …
89 c#  .net  enums  flags 

3
Swift:在切换情况下针对可选值进行测试
在斯威夫特,我怎么能写这样的情况,一个开关语句测试值被切换对抗的内容可选,跳过如果可选包含案例nil? 这是我想象的样子: let someValue = 5 let someOptional: Int? = nil switch someValue { case someOptional: // someOptional is non-nil, and someValue equals the unwrapped contents of someOptional default: // either, someOptional is nil, or someOptional is non-nil but someValue does not equal the unwrapped contents of someOptional } 如果我只是这样写,那么编译器会抱怨someOptional没有解包,但是如果我通过添加!到末尾来显式解包,那么我当然会在someOptional包含的任何时间得到运行时错误nil。添加?代替!对我来说是有意义的(我想是基于可选链接的精神),但不会使编译器错误消失(即,实际上并没有解开可选)。


9
如何使用比较器定义自定义排序顺序?
我想为汽车清单开发一个排序演示。我正在使用数据表显示汽车列表。现在实际上我想按汽车颜色对列表进行排序。这里不是按字母顺序排序的。我想使用我的自定义排序顺序,例如先是红色汽车,然后是蓝色,等等。 为此,我尝试使用Java Comparator,Comparable但是它只允许按字母顺序排序。 因此,任何人都可以指导我实现使用该技术的方法,以便使排序变得更快。 class Car implements Comparable<Car> { private String name; private String color; public Car(String name, String color){ this.name = name; this.color = color; } //Implement the natural order for this class public int compareTo(Car c) { return name.compareTo(c.name); } static class ColorComparator implements Comparator<Car> { public int …
89 java  sorting  enums 

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.