Tag: enums

在数据库表中保留枚举

我有一个具有状态的订单(在代码中是一个枚举)。 问题是如何坚持这一点。 我可以: 将字符串保留在字段中,然后映射回枚举数据检索。 将此作为整数保留,然后映射回枚举数据检索。 为枚举值创建单独的表,并在数据检索上进行连接。 思考?

对于枚举中的None(0)值,HasFlags总是返回true

这是枚举定义: [Flags] enum Animals { None = 0, Dog = 1, Cat = 2, Horse = 4, Zebra = 8, } 现在,给定以下代码,为什么HasFlag方法对值Animals.None返回true? Animals myAnimals = Animals.Dog | Animals.Horse; var hasNone = myAnimals.HasFlag(Animals.None); //true! Why? var hasCat = myAnimals.HasFlag(Animals.Cat); //false var hasDog = myAnimals.HasFlag(Animals.Dog); //true var hasHorse = myAnimals.HasFlag(Animals.Horse); //true var hasZebra = myAnimals.HasFlag(Animals.Zebra); //false

为什么迭代枚举返回重复键?

我现在正在处理有关注册表的一些事情。 我检查了System.Security.AccessControl的枚举RegistryRights 。 public enum RegistryRights { QueryValues = 1, SetValue = 2, CreateSubKey = 4, EnumerateSubKeys = 8, Notify = 16, CreateLink = 32, Delete = 65536, ReadPermissions = 131072, WriteKey = 131078, ExecuteKey = 131097, ReadKey = 131097, ChangePermissions = 262144, TakeOwnership = 524288, FullControl = 983103, } 这个枚举是一个按位,我知道枚举可以包含重复的值。 我试图通过这段代码迭代枚举: foreach (System.Security.AccessControl.RegistryRights regItem […]

枚举的XML序列化

我在序列化枚举值时遇到问题。 这是代码: [System.Xml.Serialization.XmlRootAttribute(Namespace = “”, IsNullable = false)] public class REQUEST { [System.Xml.Serialization.XmlAttributeAttribute()] public string ID; [System.Xml.Serialization.XmlAttributeAttribute()] public REQUESTTypetype Type; } public enum REQUESTTypetype { One, Two, Three, Four, } … REQUEST request = new REQUEST(); request.ID = “1234”; request.Type = REQUESTTypetype.One; XmlDocument doc = new XmlDocument(); MemoryStream ms = new MemoryStream(); StreamWriter sw = […]

如何在LinqToSQL查询中使用我的枚举?

我的数据库表中有一个用于存储枚举值的字段,例如: create table MyTable ( … Status tinyint not null, … ) 在我的C#课中我有 public enum TStatus : byte { Pending = 1 Active = 2, Inactive = 3, } public TStatus MyStatus { get { return (TStatus)Status; } set { Status = (byte)value; } } 现在我想写一个使用MyTable的MyStatus属性的Linq查询,例如 var q = MyDataContext.GetTable().Where(t => t.MyStatus == TStatus.Active); 但当然,Linq不知道如何将MyStatus解释为SQL。 […]

如何在.NET类库中创建“抽象”枚举?

我正在创建一个服务器库,其中数据包关联由枚举完成。 public enum ServerOperationCode : byte { LoginResponse = 0x00, SelectionResponse = 0x01, BlahBlahResponse = 0x02 } public enum ClientOperationCode : byte { LoginRequest = 0x00, SelectionRequest = 0x01, BlahBlahRequest = 0x02 } 当你在自己的项目中工作时,这可以正常工作 – 你可以比较返回哪个枚举成员(即if (packet.OperationCode == ClientOperationCode.LoginRequest) )。 但是,由于这是一个类库,用户必须定义​​自己的枚举。 因此,我有两个枚举添加为“抽象” – ServerOperationCode和ClientOperationCode。 我知道在C#中实现抽象枚举是不可能的。 我该怎么做呢?

如何通过XAML为Enum类型的子元素设置MenuItem的IsChecked属性?

我已使用此解决方案将MenuItem绑定到Enum。 枚举值显示正确,但我似乎无法为MenuItem的子项设置默认选中的值。 换句话说,我希望MenuItem默认选中其中一个子项(我正在使用的枚举值)。 我尝试了以下代码,使用了Style和触发的Setter: 枚举包含诸如ItemA之类的值,我还在Trigger Value属性中尝试了AnEnum.First或0 (如此AnEnum.First 回答的 ),但无济于事。 DataTrigger是否可取? 如果是这样,我怎么能在XAML中写出来? 或者我应该在ItemTemplate为MenuItem使用DataTemplate吗? 我也尝试使用SomeSetting.Items相关的方法摆弄代码隐藏,但大多数属性(如Current)都是只读的。 我知道你可以在代码隐藏中编写SomeSettingMenu.ItemsSource = Enum.GetValues(typeof(….)) ,但我又不知道如何以编程方式在MenuItem中选择一个Item。 我也试过这段代码,也不行: enums是我正在使用的不同程序集的命名空间。 任何想法将不胜感激,谢谢你提前!

C#Enum.ToString(),名称完整

我正在寻找一个解决方案来获取枚举的完整字符串。 例: Public Enum Color { Red = 1, Blue = 2 } Color color = Color.Red; // This will always get “Red” but I need “Color.Red” string colorString = color.ToString(); // I know that this is what I need: colorString = Color.Red.ToString(); 那么有解决方案吗?

如何将Enum从视图传递到模型ASP.Net MVC

控制器代码看起来像 public class EmployeeController : Controller { public enum EmployeeType { RecruitmentOffice, ResearchInstitute } public ActionResult Details(int id, EmployeeType type) { switch (type) { case EmployeeType.RecruitmentOffice: // load repository // load domain object // load view specific to recruitment office break; case EmployeeType.ResearchInstitute: // load repository // load domain object // load view specific to […]

带有描述的枚举字符串

我目前正在根据这个建议实现字符串和枚举的关联。 就是这样,我有一个与每个枚举元素相关联的Description属性。 在该页面上还有一个函数,它根据给定的枚举返回描述的字符串。 我现在要实现的是反向函数,也就是说,给定一个输入字符串查找带有相应描述的枚举(如果存在),否则返回null。 我试过(T) Enum.Parse(typeof(T), “teststring”)但是它抛出exception。