问题标签 [enum-flags]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - .NET 中的标志枚举
我正在尝试使用一组条件语句来设置一个带有 [Flags] 属性的枚举。但是,编译器抱怨 'm' 未分配。如何重写以下内容以实现我的预期功能?
c# - C#:从 KeyEventArgs 的 KeyData 中获取正确的按键
我正在捕获一个KeyDown
事件,我需要能够检查当前按下的键是否是:Ctrl++ ?ShiftM
我知道我需要使用e.KeyData
from KeyEventArgs
、Keys
enum 以及带有 Enum Flags 和 bits 的东西,但我不确定如何检查组合。
c# - C#,标志枚举,通用函数来查找标志
我想要一个可以与任何标志样式枚举一起使用的通用函数,以查看标志是否存在。
这不会编译,但如果有人有建议,我将不胜感激。
c# - 标记枚举和按位操作与“位串”
一位开发人员建议我们将一周中的选定日期存储为 1 和 0 的 7 个字符串,即星期一和星期五的“1000100”。我更喜欢(并强烈建议)使用 Flags 枚举和按位运算的解决方案,我认为这是一种更简洁的方法,并且对于其他开发人员来说应该更容易理解。
然而,当我开始实现一个示例解决方案时,我意识到也许简单的字符串方法毕竟更容易:当然,如果您只是查看数据,位串比“17”更明显。而且我发现 C# 位运算违反直觉并且非常冗长:
当然,这可以很好地包装到扩展方法中,但是我们突然之间会得到至少与字符串解决方案相同的代码行数,而且我很难说按位代码更容易阅读。
话虽如此,我仍然会使用标志枚举和按位运算。我能想到的主要好处是
- 更好的性能
- 存储所需空间更少
那么如何将按位解决方案卖给我的同事呢?我是不是该?使用此方法而不是字符串还有什么其他好处?完成示例项目后,我发现团队仍然选择了基于字符串的解决方案。我需要一些更好/更强的论据。为什么要使用标志枚举而不是简单的位串?
c# - 标记枚举混淆 C#
根据我的代码 a=1、b=2、c=3 等。我认为标志会使 a=1、b=2、c=4 等
我如何得到我想要的(c=4,e=8)?上面的[Flags]
意思是什么?
wpf - WPF 数据绑定到标志枚举(在 PropertyGrid 中)
我需要能够从 WPF 视图中选择多个值,就像从 WPF 视图中选择多个值一样(全部是它,在 PropertyGrid 中)。
有问题的属性是动态的,不能使用预定义的 DataTemplates ,因为属性的类型将在运行时被发现。(可以检测枚举是否为标志的 DataTemplate 可能会有所帮助,但据我了解,我需要提前知道标志枚举类型才能实现这一点,但事实并非如此)。
我已经为 WPF 尝试了许多专有和开源属性网格,但似乎没有一个支持开箱即用的“标志”属性枚举类型。
这个问题的解决方案是任何允许我为任何商业或开源 WPF PropertyGrid 的标志枚举 + 选择多个值的数据绑定。
代码:
示例属性类型:
示例标志枚举类型:
笔记:
如果解决方案使用开源 WPF PropertyGrid ( http://www.codeplex.com/wpg ),我会将更改/添加重新实施到控件中。
谢谢。
c# - 如何使用自定义 WPF 控件上的依赖属性处理计算值
总结一下我正在做的事情,我有一个自定义控件,它看起来像一个选中的列表框,它有两个依赖属性,一个提供可用选项列表,另一个表示组合选择选项的枚举标志值。
因此,正如我提到的,我的自定义控件公开了两个不同的 DependencyProperties,其中一个是名为Options的选项列表,另一个名为SelectedOptions的属性是特定的 Enum 类型,它使用 [Flags] 属性来允许设置值的组合。然后,我的 UserControl 包含一个类似于 ListBox 的 ItemsControl,用于显示选项和复选框。当检查或未选中复选框时,应使用相应的位置操作相应地更新选定的属性。
我遇到的问题是,除了求助于维护私有字段和处理属性更改事件来更新我的属性之外,我别无他法,这在 WPF 中感觉不自然。我曾尝试使用 ValueConverters 但遇到了一个问题,即我无法真正使用与值转换器绑定的绑定,因此我需要将我的枚举值硬编码为 ValueConverter 参数,这是不可接受的。如果有人看到了如何明智地做到这一点的好例子,我将不胜感激任何输入。
旁注:这也是我过去在试图了解依赖属性如何不允许计算或延迟值时遇到的一个问题。另一个示例是,当人们可能希望将子控件上的属性公开为父控件上的属性时。大多数人在这种情况下建议使用绑定,但仅当子控件属性是依赖属性时才有效,因为放置绑定以便目标是父属性,当父控件的用户想要设置自己的绑定时,它将被覆盖对于那个属性。
c# - 来自 Flags 枚举的随机值
假设我有一个函数接受一个用 Flags 属性装饰的枚举。如果枚举的值是多个枚举元素的组合,我如何随机提取其中一个元素?我有以下内容,但似乎必须有更好的方法。
c++ - 带有名称的枚举标志
我将使用枚举标志来初始化我的类。枚举是:
如果我是对的,在这种情况下,要检查 STATIC 我需要这样做:
我知道这样做:
我需要删除枚举名称。但这真的有必要吗?我不能在不到处键入名称的情况下使用命名枚举的枚举值吗?
c# - C# - [标志] 枚举和扩展方法的帮助
我有以下枚举:
作为开始,我不确定这些标志是否正确。
我这样做是为了让我有一种流畅的方式来定义实体框架的“包含”(因为 EF Include 方法需要一个字符串,我不想将它暴露给 UI)。
所以我想要它,以便我的服务层可以接受PostAssociations,并且在我的服务层中,我利用扩展方法将其转换为字符串 []。(我的回购然后为了做.Include而分裂)。
我对 Flags Enum's 做的不多,所以我为我的无知道歉。:)
这是我想要的“真值表”(枚举值,转换后的字符串 [])
不能有没有评论的评论用户。
所以我需要三件事的帮助:
- 如何设置枚举以匹配该真值表?
- 我如何为这些示例之一调用服务层?
- 如何编写扩展方法将该枚举转换为字符串数组?
当然,如果你们能想出一个更好的方法来做我想做的事情,我也会考虑的。本质上,我试图掩盖 Enum 后面的 EF Include 的“魔术字符串”,并且考虑到您可以执行多个包含(或不包含),我认为这对于 Flags Enum 来说是一个很好的例子。
多谢你们。