问题标签 [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.
scala - Scala 等价于标志
Scala 中没有标志的等价物吗?
就像是 :
我想我可以为每个标志集做一个类并有一堆布尔值,但是语法糖呢?
java - 带有 KeyEventDispatcher 的 JFrame 无法单击 3 个箭头键
我目前正在测试KeyEventDispatcher
.
因此我写了一些JFrame
实现KeyEventDispatcher
和我自己的
keyPressed
方法keyReleased
。
在这些方法中,我使用基于标志的系统来检测每个箭头键的第一次按键。
如果您单独单击按键,一切正常。但是,如果您单击右、上、左(不释放其中任何一个),将无法识别左键。
控制台输出:
右键单击
4
向上单击
6
预期输出:
右击
4
上击
6
左击
7
我的代码如下:
主类:
界面类:
c# - [Flags] 枚举之间的意外行为:long 与 [Flags] 枚举:ulong
编译但不应该
错误但不应该
编译器错误文本:
-2147483648 无法转换为 ulong
问题:
我预计会发生相反的情况。谁能解释这是为什么?
另外,我如何将此标志属性打印到 abyte[]
以供检查?
c# - CA1008:枚举应该有零值和标志枚举
即使我完全知道 CA1008 警告存在的原因,我也不知道如何在以下情况下避免它。我有一个具有以下含义的标志枚举:
所以在这种情况下,0 表示 InvalidValueNonWritten 而不是 None。规则说
请勿禁止来自此规则的警告,但以前发布的标志属性枚举除外。
在这种情况下,我没有发送枚举,那么我该如何防止这个警告呢?
编辑:
警告明确表示:
警告 86 CA1008:Microsoft.Design:在枚举“XXX”中,将“XXX.InvalidValueNonWritten”的名称更改为“None”。
编辑2:
枚举的更多状态:
c# - 如果我们按顺序声明 [Flags] 枚举会发生什么?
我遇到了这个问题:[Flags] Enum Attribute 在 C# 中是什么意思?
我一直想知道的一件事是,使用接受的答案的例子,如果我声明会发生什么:
该示例中的以下步骤会导致错误吗?如果没有,我怎样才能到达 MyColors.Red?
jquery - 确定在复选框列表中选中了哪些复选框 MVC 5 (editorfor)
这可能已经在另一个线程中得到了回答,但我找不到解决方案......所以就这样吧。
我已经定义了一个带有标志的枚举:
它被模型及其各自的助手使用。
观点比较简单。我显示了船只属性的复选框列表,div
当检查“其他”的复选框时,我想显示一个隐藏的东西。
我正在努力使用一个 jquery 脚本,该脚本将检测用户何时选中“其他”复选框并显示隐藏的div
想法?
c# - 为枚举标志定义值的约定是什么?
假设我有以下代码:
当标志的数量变得非常大时,这显然不是最佳的。通过优化,意味着可读,而不是快速或节省内存。
对于组合标志,例如
我们可以很容易地使用
相反,它更具可读性。
并用于组合所有标志
使用会更有利
相反,即使我们没有充分利用所有可用的 32/64 位。
但是常规值呢?
之间
或者我没有想到的其他方式,哪种方式最适合大量标志?
或者换句话说,在 C# 中设置标志值的(商定)约定是什么?
让我们假设为了论证,值不会对齐,所以代码可能看起来像这样
c# - Display Possible Flags or modify to accommodate to existing flags
I have a piece of code where I get enum flags from an API. When this API changes and updates, I might get values that are not defined in my enum structure.
Example:
When I say (TestEnum)7
, I get, as a string representation when outputting said data, "Enum1|Enum2|Enum3". However, if now the API changes, and gives me an additional flag "8" that is set with (TestEnum)15
, the String representation, especially in Visual Studio, will not give me the flags, it will only Display "0xF"
Is there a way to either get all the bits that are mapped properly to be displayed, or like in my example, to "forget" Enum4, the forth bit. Is there a way to do this?
c# - 在 t-sql 中解构 c# 标志
我被要求建立一个包含一堆位字段的表来切换一系列选项。这是 ac# 标志枚举将所有这些位组合到表中的单个 int“选项”字段中的理想场所。
问题是除了 c# 之外,还有一些东西需要在 sql 查询中读取和查询这些标志。我找不到任何似乎能够将 int 解构为一系列标志值的东西。我正在寻找(我认为)是将 int 转换回二进制然后选择第 n 个值并将其报告为特定选项的 bool 的东西。我可以手动执行此操作,但我担心性能下降以及“绕过您的@ss 以达到您的肘部”的效果,即试图避免使用过于复杂的解决方案的一连串位列。
c# - 确定枚举值是否不是 C# 中的组合
编辑:
大多数人建议标志枚举应始终具有 2 次方的值。这可能是最佳实践,但我不是在这里定义枚举,而是检查它们并希望在合理范围内涵盖所有可能的场景。问题实际上是关于实现名为EnumUtilities.IsValueDefinedAndComposite<T>
.
原帖:
考虑以下枚举:
以下是将Enum.IsDefined
各种值转换为的结果TestWithFlags
。
输出:
我无法弄清楚的是如何确定枚举值是复合的。请参阅EnumUtilities.IsValueDefinedAndComposite<T>
下面代码中的功能。
为方便起见,这是完整的代码。