Tag: 枚举

是否可以创建一个通用的Int-to-Enum转换器?

我想能说 如果int值等于(int)MyEnum.Value其解析为True 我知道我可以创建一个返回(MyEnum)intValue的Converter ,但是我必须为我在DataTriggers中使用的每个Enum类型创建一个转换器。 有没有一种通用的方法来创建一个能够给我这种​​function的转换器?

‘^’在c#(Enums)中做了什么?

我正在阅读一些第三方代码,我发现了这个: x.Flags = x.Flags ^ Flags.Hidden; 它有什么作用? 我用’&’和’|’ 用于按位’和’和’或’用枚举,但这是我第一次看到那个符号……

.Net枚举winforms字体样式?

我一直在寻找一种方法来列出使用.Net框架的给定字体的有效字体样式(即使我必须使用gdi32或其他API),因为并非所有字体都属于System.Drawing.FontStyle枚举值(粗体,斜体,常规,罢工,下划线)。 Segoe UI是一种TrueType Microsoft字体,其字体样式为:Regular,Semibold,Light,Bold,Italic和BoldItalic,这是一个不符合要求的字体的完美示例。 另一个例子是Arial,它有:常规,窄,斜体,粗体,粗体斜体,窄粗体,窄粗体斜体和窄斜体。 在Windows 7中(可能也是vista,但我没有要检查的机器)当您打开资源管理器并浏览到%SystemRoot%\ Fonts时,您将看到一个名为“字体样式”的列,其中列出了所有可用的样式对于每种字体,它告诉我有一种方法可以做到这一点,至少通过API调用。 最后,我希望枚举FontFamily列表,然后列出每个家庭的每种字体样式。 下面列出了所有字体系列的示例代码,如果有人可以提供帮助列出每个家庭可用的字体样式,我将不胜感激。 如果我以错误的方式解决这个问题,我绝对乐于接受建议。 Drawing.Text.InstalledFontCollection ifc = new Drawing.Text.InstalledFontCollection(); foreach ( FontFamily ff in ifc.Families ) { Console.WriteLine(ff.ToString()); // Something like this would be nice, but AFAIK nothing similar exists /* foreach ( FontStyle style in ff.Styles ) Console.WriteLine(style.ToString()); */ }

需要在c#中进行double类型的枚举

如何创建double类型的枚举? 是否有可能或者我必须创建某种集合和哈希?

如何在JavaScript中使用C#枚举值

我在C#中有一个枚举,比如Category.cs。 在下拉列表中,我们是绑定值。 因此,如果用户在下拉列表中选择某个特定值,它将隐藏一个div。 所以我想在javascript中获取枚举值,即想要将枚举值与javascript中的一个选定值进行比较。 马赫什

C#:如何使用Type Converter来本地化枚举

我正在尝试了解如何在阅读我的其他问题的答案后使用类型转换器。 但我不确定我是否完全明白了…… 在我的特定情况下,我想通过获取资源字符串来将枚举成员“转换”为本地化字符串,具体取决于它是什么枚举成员。 例如,如果我有这个枚举: public enum Severity { Critical, High, Medium, Low } 或这个: public enum Color { Black = 0x0, Red = 0x1, Green = 0x2, Blue = 0x4, Cyan = Green | Blue, Magenta = Red | Blue, Yellow = Red | Green, White = Red | Green | Blue, } 如何创建可以将这些成员转换为本地化字符串的类型转换器? 我将如何使用它? […]

DataGridView基于枚举链接到带有Combobox列的DataTable

昨天花了很多时间搜索这个,我不得不放弃。 我有一个链接到Datatable的DataGridView。 其中一列是枚举,我希望它显示为Combobox列。 我在DataGridView中找到了这个链接创建下拉列表选项,其中包含使用以下内容的答案… DataGridViewComboBoxColumn col = new DataGridViewComboBoxColumn(); col.Name = “My Enum Column”; col.DataSource = Enum.GetValues(typeof(MyEnum)); col.ValueType = typeof(MyEnum); dataGridView1.Columns.Add(col); 我已经尝试了但是当用户创建一个新记录时,从下拉列表中选择一个选项(正确的选项显示)然后离开该字段,他们得到消息“DataGridViewComboBoxCel值无效”。 我在搜索中找到了一些解决方案,讨论如何捕获此错误,然后什么都不做(从而隐藏错误),但我想解决它而不是隐藏它。 如果用户确定了他们得到的消息,则重复另外两次。 我还看到了遍历枚举值的解决方案,并创建了一个包含int和每个字符串的数据表,然后使用数据表作为组合中的数据源。 在使用后端MSSQL数据库时,我曾使用数据表作为combobox的源代码。 另一种变体是循环并直接写入组合这样的… foreach (MyEnum bar in MyEnum.GetValues(typeof(MyEnum))) { string barName = MyEnum.GetName(typeof(MyEnum), bar); MyComboColumn.Items.Add(barName); } 比如在这个链接中的问题。 如何将一些枚举值添加到combobox中 我的问题:可以使用Enum.GetValues(typeof(MyEnum))使其工作; 方法? 数据表方法看起来很长。 然后循环使用MyComboColumn.Items.Add(barName); 也有点长篇大论,并且会导致枚举的字符串版本记录在数据表中而不是整数(我宁愿它是整数)。 我找不到Enum.GetValues(typeof(MyEnum))方法的示例,其中网格链接到数据表。 当我搜索它时,我只是遇到了其他方法。 我认为问题可能在于基础表列上的数据类型。 我已经尝试过这个整数,作为一个字符串,我试过不定义它。 我想不出还有什么可以尝试这种类型。 这是我的简化代码。 (DVG是我表格上的DataGridView)。 enum […]

我怎么知道枚举中的物品?

在这个问题中 ,我在enum与[Flags]属性之间使用xor运算符如下: [Flags] enum QueryFlag { None = 0x1, ByCustomer = 0x2, ByProduct = 0x4, ByDate = 0x8 } QueryFlag flags = QueryFlag.ByCustomer | QueryFlag.ByProduct; 要添加QueryFlag,我们当然应该使用| 运营商。 flags |= QueryFlag.ByDate; 为了删除一个,我对丹涛的回答有不同的看法 。 我正在使用: flags ^= QueryFlag.ByProduct; 他正在使用: flags &= ~QueryFlag.ByProduct; 显然他的回答是正确的,易于理解。 我以为我弄错了。 但经过深思熟虑,我得到了: a,ba^b a&(~b) 0,0 0 0 0,1 1 0 //the difference 1,0 1 […]

LINQ to Entities中不支持指定的类型成员

我有一个名为StatusTypes的枚举类型 public enum StatusTypes { Open = 1, Allocated = 2, WorkInProgress = 3, WaitingOnRequestor = 4, WaitingOnThirdParty = 5, Monitoring = 6, Testing = 7, OnHold = 8, Complete = 9, SignedOff = 10, Reopened = 11 } 我正试图在我的存储库中使用它…. public IQueryable GetAllOutstandingIncidents() { return from i in db.Incidents where i.Status != Types.StatusTypes.SignedOff && i.Status […]

C#显式转换为枚举的字符串

我希望在c#中从字符串到枚举之间进行明确的转换,以便得到: (MyEnum) Enum.Parse(typeof(MyEnum),stringValue) 我想把它驱逐到一个显式的强制转换操作符,我这样做但是没有用: public static explicit operator (MyEnum)(value stringValue){ return (MyEnum) Enum.Parse(typeof(MyEnum),stringValue); } 你知道在C#中使用.NET 3.5是否可行?