Tag: enums

用于状态处理的多态Enum

如何在不使用C#中的switch或if语句的情况下处理枚举? 例如 enum Pricemethod { Max, Min, Average } ……我有一篇文章 public class Article { private List _pricehistorie; public List Pricehistorie { get { return _pricehistorie; } set { _pricehistorie = value; } } public Pricemethod Pricemethod { get; set; } public double Price { get { switch (Pricemethod) { case Pricemethod.Average: return Average(); case Pricemethod.Max: […]

枚举或表格?

我正在制作一个社区维基,因为我会欣赏人们的方法而不一定是答案。 我的情况是我有很多查找类型数据字段,不会改变。 一个例子是: 每年薪水 选项:0 – 25K 选项:25K – 100K 选项:100K + 我希望通过枚举轻松获得这些选项,但也希望在DB中提供文本值,因为我将报告文本值而不是ID。 此外,由于它们是静态的,我不想调用DB。 我想在枚举和表格中重复这个,但是想听一些其他的想法。 谢谢

在C#中将超出范围的数字转换为枚举不会产生exception

以下代码不会产生exception,而是将值4传递给tst。 任何人都可以解释这背后的原因吗? public enum testing { a = 1, b = 2, c = 3 } testing tst = (testing)(4);

Convert.ChangeType如何从String转换为Enum

public static T Convert(String value) { return (T)Convert.ChangeType(value, typeof(T)); } public enum Category { Empty, Name, City, Country } Category cat=Convert(“1”);//Name=1 当我调用Convert.ChangeType ,系统会因无法从String转换为Category而抛出exception。 如何进行转换? 也许我需要为我的类型实现任何转换器?

C#:从KeyEventArgs的KeyData中获取正确的键

我正在捕获一个KeyDown事件,我需要能够检查当前按下的键是否: Ctrl + Shift + M ? 我知道我需要使用KeyEventArgs的e.KeyData , Keys枚举以及Enum Flags和bits的内容,但我不确定如何检查组合。

枚举除字符串以外的返回类型?

由于枚举使用整数,我可以使用什么其他结构来给我类似enum的访问链接到名称的值: [我知道这是错的,寻找替代方案] private enum Project { Cleanup = new Guid(“2ED3164-BB48-499B-86C4-A2B1114BF1”), Maintenance = new Guid(“39D31D4-28EC-4832-827B-A11129EB2”), Upgrade = new Guid(“892F865-E38D-46D7-809A-49510111C1”), Sales = new Guid(“A5690E7-1111-4AFB-B44D-1DF3AD66D435”), Replacement = new Guid(“11E5CBA2-EDDE-4ECA-BDFD-63BDBA725C8C”), Modem = new Guid(“6F686C73-504B-111-9A0B-850C26FDB25F”), Audit = new Guid(“30558C7-66D9-4189-9BD9-2B87D11190”), Queries = new Guid(“9985242-516A-4151-B7DD-851112F562”) } 编辑2014-07-20 这是对这个问题的新答案。 将Attribute类与辅助方法一起使用,定义枚举所需的额外属性。 public enum MultiValueEnum { [FooAttribute(“alpha”, 20d, true)] First, [FooAttribute(“beta”, 40.91d, false)] Second, [FooAttribute(“gamma”, […]

将枚举存储为数据库中的字符串

我正在试验小巧玲珑。 我有一个具有枚举的类,值存储为数据库中的字符串。 这适用于使用GenericEnumMapper的FluentNHibernate 是否可以用Dapper做同样的事情?

c#阿尔法电话号码翻译

我有一个家庭作业,程序将接受任何类似于555-GET-FOOD格式的电话号码。 任务是将字母字母映射到数字并将数字转换为数字等效字母。 例如:A,B,C = 2; D,E,F = 3; 等等… 我们此时尚未涉及类或创建地图,因此这些不是可行的解决方案。 本章确实涵盖了枚举,所以我正在努力使用枚举类型来解决。 我有一个方法设置来validation数据(确保正确的#字符和连字符在正确的位置),这确实工作正常。 我有另一个方法设置来删除连字符,并使用ToUpper()方法,这也正常工作,所以foreach循环我已经使用这两个方法已经完成后的数字设置我们。 我还设置了一个方法,在转换发生后运行,以添加连字符,这也有效。 我已经尝试了几种方法来工作并让他们注意到他们可能成为我需要使用的机会,因为我尝试使用switch语句我现在只设置字母A,并计划如果我能够使其工作,请完成剩余的字母。 我认为我的问题是foreach循环使用char类型,并且交换机使用int。 在foreach循环中尝试代码时似乎是同样的问题,但我不知道如何修复所以任何建议都值得赞赏。 public enum AlphaNumber { A=2, B=2, C=2, D=3, E=3, F=3, G=4, H=4, I=4, J=5, K=5, L=5, M=6, N=6, O=6, P=7, Q=7, R=7, S=8, T=8, U=8, V=9, W=9, X=9, Y=9, Z=9 } private void UpdatePhone(AlphaNumber phone) { switch (phone) […]

C#动作/function列表

我有一个程序必须根据Enum执行一个函数,我想知道如果还有另一种方法,那么: enum FunctionType { Addition = 0, Substraction = 1, Mutiplication = 2, Division = 3 } void ExecuteFunction(FunctionType Function) { switch(Function) { case FunctionType.Addition: Addition(); break; case FunctionType.Substraction: Subsctration(); break; … default: … } } (这不是我正在使用的代码,它只是代表我想要做的事情)。 这种方法应该可以正常工作,但是当你有更多function时会发生什么? 我不想要50线开关。 所以我想知道是否有办法简化它,这样的事情可能是: enum FunctionType : Action { Addition = new Action(Addition); Substraction = new Action(Substraction); …. } […]

动态更改C#中枚举的值?

我有一个枚举 public enum TestType:int { Aphasia = 2, FocusedAphasia = 5 } 设置值。 我想将枚举’FocusedAphasia’的值从5更改为10.任何人都可以帮助我在运行时更改枚举的值