Tag: 枚举

打开枚举(带标志属性)没有声明每个可能的组合?

我如何打开一个具有标志属性设置的枚举(或更精确地用于位操作)? 我希望能够在与所声明的值相匹配的开关中击中所有情况。 问题是,如果我有以下枚举 [Flags()]public enum CheckType { Form = 1, QueryString = 2, TempData = 4, } 我想用这样的开关 switch(theCheckType) { case CheckType.Form: DoSomething(/*Some type of collection is passed */); break; case CheckType.QueryString: DoSomethingElse(/*Some other type of collection is passed */); break; case CheckType.TempData DoWhatever(/*Some different type of collection is passed */); break; } 如果“theCheckType”设置为CheckType.Form | […]

哪里是查找枚举types的最佳位置?

我发现通常有一个单一的types或命名空间,将任何特定的枚举作为参数,因此我总是在那里定义那些枚举。 但是最近我有一个同事做了一件大事,那就是一个愚蠢的事情,你应该总是在项目的根目录有一个枚举命名空间,在这个命名空间中定义你所有的枚举types。 哪里是查找枚举types的最佳位置?

Java的枚举valueOf()与多个值?

我在使用枚举Java的问题。 我已经阅读了有关为Enums赋值参数的文档。 但是,我的问题是多重价值是什么,可能吗? 这是我想实现的:我有一个语言的枚举。 每种语言都由其名称和一些较短的别名表示(并不总是,并不总是相同数量的别名) 这里是一个例子: public enum Language{ English("english", "eng", "en", "en_GB", "en_US"), German("german", "de", "ge"), Croatian("croatian", "hr", "cro"), Russian("russian") } 我可以像这样定义一个枚举,并通过调用Language.valueOf()获得正确的枚举值?

枚举的扩展方法,而不是枚举的实例

我有一个枚举我的东西是这样的: public enum Things { OneThing, AnotherThing } 我想为这个枚举编写一个扩展方法(类似于这里的Prize的答案 ),但是当这个方法在枚举的一个实例上工作时,ala Things thing; var list = thing.ToSelectList(); 我希望它在实际枚举上工作,而不是: var list = Things.ToSelectList(); 我可以做 var list = default(Things).ToSelectList(); 但我不喜欢那个:) 我已经接近以下扩展方法: public static SelectList ToSelectList(this Type type) { if (type.IsEnum) { var values = from Enum e in Enum.GetValues(type) select new { ID = e, Name = e.ToString() […]

为什么有人在枚举声明中使用<<运算符?

我在看我目前在我的项目中的代码,发现这样的事情: public enum MyEnum { open = 1 << 00, close = 1 << 01, Maybe = 1 << 02, …….. } <<操作数是移位操作数,它将第一个操作数左移第二个操作数中指定的位数。 但是为什么有人在enum声明中使用这个呢?

C#数字枚举值作为string

我有以下枚举: public enum Urgency { VeryHigh = 1, High = 2, Routine = 4 } 我可以像这样获取一个枚举“值”的string : ((int)Urgency.Routine).ToString() // returns "4" 注意:这不同于: Urgency.Routine.ToString() // returns "Routine" (int)Urgency.Routine // returns 4 有没有一种方法可以创build一个扩展类,或一个静态的utliity类,这将提供一些语法糖? 🙂

如何匹配int到枚举

我正在从Android中的本机代码以long或int的forms接收返回值,我想要转换或与枚举匹配,为处理目的。 可能吗 ? 怎么样?

Java:从Set <String>枚举

我有一个简单的collections问题。 我有一个Set<String>对象。 我想要枚举该集合中的string。 什么是最干净/最好的方式去做呢?

它是如何从一个枚举派生System.Enum是一个整数在同一时间?

编辑 :底部的评论。 另外, 这个 。 这是什么让我困惑。 我的理解是,如果我有这样的枚举… enum Animal { Dog, Cat } …我基本上做了什么是定义了一个值types称为Animal与两个定义值, Dog和Cat 。 这种types派生自引用types System.Enum (通常情况下,值types通常不会这样做 – 至less在C#中是不允许的,但在这种情况下允许这样做),并且具有用于来回转换int值的工具。 如果我刚刚描述的枚举types的方式是真实的,那么我期望下面的代码抛出一个InvalidCastException : public class Program { public static void Main(string[] args) { // Box it. object animal = Animal.Dog; // Unbox it. How are these both successful? int i = (int)animal; Enum e = […]

如何在MATLAB中创build枚举types?

在MATLAB中有枚举types吗? 如果不是,还有什么select?