问题标签 [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.

0 投票
2 回答
252 浏览

c# - 如何区分 Flags 枚举和普通枚举之间的区别?

如果枚举是 a[Flags] enum还是常规的,有什么方法可以反射性地测试enum

如果枚举是 Flags 枚举,我需要应用程序的行为略有不同,如果它不是 Flags 枚举。

0 投票
2 回答
285 浏览

c# - 如何从标志枚举的实例中获取一组设置位?

该类Enum具有以下有用的功能:

我怎么能写一些类似的东西来给我一个枚举实例的所有设置位的集合?带有如下签名:

我无法让演员正常工作,因为我不允许限制,Enum所以我需要使用struct.

0 投票
7 回答
9288 浏览

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

这是枚举定义:

现在,给定以下代码,为什么 HasFlag 方法对 Animals.None 值返回 true?

0 投票
5 回答
1316 浏览

c# - 将多个列表枚举值写入另一个枚举

从客户端我得到一个列表,其中每个 int 值是 Enum DayOfWeek 的枚举 int 值。

该列表仅包含那些在时间计划器中可见的 int 值(天)。

获取 int 值列表,例如 0、1、2(星期日、星期一、星期二),您将如何以一般方式将这些值写入 DayOfWeek 枚举,适用于所有 7 天或没有一天?

只知道星期六的索引为 6,而我的 DayOfWeek 枚举的值为 32。

更新

这是来自 MarcinJuraszek 的工作解决方案代码,只是根据我的需要进行了更改:

上面的代码将一周中的所有日子写入 VisibleDayOfWeek 枚举,现在可以轻松地将其保存在数据库字段中。

根据 Microsoft MSDN,标志枚举的 None 值现在再次设置为 0,其余值是 2 的幂。

0 投票
2 回答
357 浏览

c# - 在自定义 UITypeEditor 中使用 OR'ed 枚举

我在编写的自定义控件上有一个属性,它是基于标志的枚举。我创建了自己的自定义控件,以一种合乎逻辑的方式对其进行编辑,并从我自己的 UITypeEditor 中调用它。问题是,当我尝试存储的值是它告诉我该值无效的标志的组合时,Visual Studio 会生成错误。

例子:

如果我要保存SingleUnit | Trigger的值是生成的值是 9。这反过来会产生以下错误:

属性“TrayMode”的代码生成失败。 错误是:'值'9'对于枚举'TrayModes'无效。'

0 投票
2 回答
604 浏览

c# - 我应该如何表示分层标志枚举?

我有以下一组枚举:

这个想法是枚举表示一个层次结构,其中子枚举暗示其父级,并且可以应用任意数量的标志。

我看到的问题是,在调试过程中,所有子枚举都没有被表示为名称或名称集。IE,Categories.F=“F”但Categories.F2= 16777248。我希望Categories.F2=“F,F2”或至少“F2”

我怎样才能让我的枚举仍然被识别为标志?有没有更好的方法来完成我想要做的事情?

0 投票
3 回答
11800 浏览

c# - C# 枚举 - 根据掩码检查标志

我有以下枚举标志:

现在我有一个枚举实例,我需要检查它是否可读。如果我使用以下代码:

在我的情况下它总是返回 false 因为我认为 HasFlag 检查它是否有每个标志。我需要一些优雅的东西来避免这样做:

我该怎么做?

0 投票
2 回答
1341 浏览

enums - Haxe - 将枚举作为标志发送给函数

我只是想将我的代码从 C# 转换为 Haxe NME。我使用枚举作为标志。

并使用它

我不知道如何在 Haxe NME 中做到这一点。

谢谢。

0 投票
2 回答
166 浏览

c# - 枚举标记意外结果

我使用枚举作为标志

在这里我声明我的标志 =

在这里,我将枚举转换为 8 个字节

在这里我将它们转换回列表

但是我得到了一个意想不到的结果,我得到 Off_hook,Two_way_lockout,Phone_fault,Fuse_fault,Expander_bell_fault,_6_digit_PIN_enabled了结果。

所以有些标志是正确的,但是例如 Two_way_lockout 没有在我的枚举中声明。

我究竟做错了什么?

0 投票
2 回答
173 浏览

c# - 什么是 C# 中的“|=”运算符?

在研究错误的原因时,我遇到了这行代码:

什么是 C# 中的“|=”运算符?

“状态”是这样定义的:

...带有访问器和修改器(或“getter”和“setter”),而“states”是这样定义的: