Tag: 枚举

将枚举值与本地化字符串资源相链接

相关: 从枚举属性获取枚举 我希望以最可维护的方式绑定枚举,并将它与关联的本地化字符串值相关联。 如果我把枚举和类放在同一个文件中,我觉得有些安全,但我必须假设有更好的方法。 我也考虑过将enum名称与资源字符串名称相同,但我担心我不能总是在这里强制执行。 using CR = AcmeCorp.Properties.Resources; public enum SourceFilterOption { LastNumberOccurences, LastNumberWeeks, DateRange // if you add to this you must update FilterOptions.GetString } public class FilterOptions { public Dictionary GetEnumWithResourceString() { var dict = new Dictionary(); foreach (SourceFilterOption filter in Enum.GetValues(typeof(SourceFilterOption))) { dict.Add(filter, GetString(filter)); } return dict; } public String GetString(SourceFilterOption […]

如何在combobox中显示枚举值?

如何在combobox中显示枚举值? 下面的代码导致combobox的所有显示名称都是“caseHandler.cState”。 我希望它具有枚举值的实际名称。 我的枚举定义如下: public enum caseState { Active = 1, Finished, Problem } 我有一个定义为这样的类: public class cState { public string _name; public int _id; public cState(int id,string name) { _name = name; _id = id; } } 填充我的combobox的代码: ArrayList AL = new ArrayList(); foreach (string cs in Enum.GetNames(typeof(caseState))) { cState aEnum = new cState((int)Enum.Parse(typeof(caseState),cs),cs); […]

应该“或”使用.Net4 Hasflags:enum.HasFlag(AccessRights.Read | AccessRights.Write)

我正在尝试新的HasFlagsfunction,并想知道以下是否应该工作: enum.HasFlag(AccessRights.Read | AccessRights.Write) ……因为它似乎不…… DBAccessRights rights = (DBAccessRights)permission.PermissionFlags; if (rights.HasFlag(DBAccessRights.WikiMode)) { // works } if (rights.HasFlag(DBAccessRights.WikiMode | DBAccessRights.CreateNew)) { // Doesn’t work } DBAccessRights flags = DBAccessRights.WikiMode | DBAccessRights.CreateNew; if (rights.HasFlag(flags)) { // Doesn’t work }

有没有办法迭代所有枚举值?

可能重复: C#:如何枚举枚举? 主题说全部。 我想用它来在combobox中添加枚举的值。 谢谢 vIceBerg

C#如何决定哪个枚举值作为返回值? 任何规则?

我找到了一个很有趣的东西 – 让我们说: enum Myenum { a, b, c= 0 } public class Program { static void Main(string[] args) { Myenum ma = Myenum.a; Console.WriteLine(ma); } } 结果是,为什么? 如果我说: enum Myenum { a, b=0, c} public class Program { static void Main(string[] args) { Myenum ma = Myenum.a; Console.WriteLine(ma); } } 结果变成“b”,为什么?

转换器显示枚举的描述,并在从wpf的combobox中选择项目时转换回枚举值

我正在使用枚举来在我的combobox中登记值。 我想写一个转换器,它将显示所选枚举值的“描述”。 并且,选中后,它将返回枚举值。 大多数在线转换器都没有实现ConvertBack()方法(这就是我在这里发布的原因)。 提前致谢。

什么时候两个枚举在C#中相同?

我创建了两个枚举,我知道它们不一样,但我认为它们是相同的,因为它们的字符串表示以及它们的数字表示相等(甚至相同……)。 换句话说:我希望第一个测试通过,第二个测试失败。 但实际上,他们都失败了。 那么:C#中的两个枚举何时相等? 或者无论如何在C#中定义equals运算符? 谢谢! public enum enumA {one, two} public enum enumB {one, two} [Test] public void PreTest() { Assert.AreEqual(enumA.one,enumB.one); Assert.AreSame(enumA.one, enumB.one); } 更新:1)所以到目前为止所有答案都比较表示,无论是整数还是字符串。 enum 本身总是不平等的我聚集在一起? 没有办法为它定义平等吗?

接口/基类中的C#枚举?

我有枚举的问题 我需要在基类或接口中创建一个枚举(但是空的) class Base { public enum Test; // ??? } 并在一些父类中创建不同的枚举之后 class Parent1 { public enum Test {A, B, C}; } class Parent2 { public enum Test {J, H, K}; } 现在,当我必须使用枚举时,我有下一节课的方法 class Test { public void Foo(Test enum) { int value = (int) enum; // … } } 有没有办法做那样的事情? 如果不是我必须在每个class级使用静态内联… class Parent1 { […]

迭代枚举?

我正在尝试迭代枚举,并使用其每个值作为参数调用方法。 必须有一个比我现在更好的方法来做到这一点: foreach (string gameObjectType in Enum.GetNames(typeof(GameObjectType))) { GameObjectType kind = (GameObjectType) Enum.Parse(typeof (GameObjectType), gameObjectType); IDictionary gameObjectData = PersistentUtils.LoadGameObject(kind, persistentState); } //… public static IDictionary LoadGameObject(GameObjectType gameObjectType, IPersistentState persistentState) { /* … */ } 将枚举名称作为字符串,然后将它们解析回枚举,感觉很可怕。

C#中的字典枚举

如何枚举字典? 假设我使用foreach()进行dictionay枚举。 我无法更新foreach()的键/值对。 所以我想要一些其他的方法。