问题标签 [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++ - QFlags 和 QVariant
我想要做的是简单地将 a 存储QFlags
在 a 中QVariant
。
标志定义:
现在我所做的就是使用该QVariant::fromValue
函数构造一个 qvariant:
调试输出显示:
那么,无论出于何种原因,QVariant 似乎无法存储标志?它确实识别类型,但似乎无法存储该值。我错过了什么?如果我注册一个枚举,一切正常。
注意:我知道我可以通过将值转换为整数并返回来存储值,但这对我来说是不可能的,因为 QVariant 创建是泛型方法的一部分。
c# - 确定枚举标志组合中包含的标志数量的最佳实践?
在某些情况下,当我将 Enum 传递给一个方法时,我需要处理它是单个 Enum 值,还是一个标志组合,为此我编写了这个简单的扩展:
VB.Net:
C#(在线翻译):
示例用法:
VB.Net:
C#(在线翻译):
我只想问是否存在一种更直接和有效的方式,我目前正在做的事情是避免将标志组合表示为字符串然后拆分它。
wpf - 如何在xaml中绑定列表框的多个选定项
我有绑定到列表框项目源中的标志枚举值。我用过SelectionMode
多个。我想将列表框的所有选定项目分配给一个标志 Enum 属性。如何绑定选定的项目?
这里的weekdays是Weekdays类型的Flags-Enum。我想将列表框的所有选定项目绑定到Weekdays。
c# - 我想知道是否或如何使用标志枚举并在另一个类中返回枚举参数
我有一个用于输入验证的标志枚举列表,我想返回其中一个枚举作为验证的一部分。到目前为止,这就是我想出的……
这些是我的枚举。
这是我在使用枚举时显示消息的开关
这是我的问题所在,我想验证输入并返回枚举,以便它可以与我的开关一起运行并显示那里的消息
我实际上最终放弃了这个想法并使用了“错误报告”。我不能完全让这种方法为我工作。肯定是因为我不知道怎么做。有一天,我希望能解决我遇到的问题。
c# - 有没有办法判断枚举是否设置了一个、多个或没有设置标志?
我有一个这样定义的枚举:
有没有一种通用的方法来判断是否设置了一个标志,多个或没有?我不在乎枚举的值是多少,我只想知道设置了多少个标志。
这不是用于计算位数的重复项。如果我像这样初始化枚举并计算位数,我得到 10。但设置标志的数量为 8。
c# - 十进制值/名称的枚举标志转换
我很少有代表外部系统版本的枚举标志。我想确保每次外部系统升级它的版本时,我的功能应该能够支持它(我会提前知道版本会升级,所以它是一个主动行动)。此外,我的通信必须与该系统双向进行,这意味着内部和外部通信可以有不同的版本集。
我创建了一个枚举标志来表示这些版本。
这适用于正式的重大升级。遗憾的是,我不能将它们命名为 System1.0 等。此外,作为它的小数,我不能使用通用枚举解析器。
当然,我仍然可以通过使用switch/if 语句来实现上述目的,但我真的想完全避免任何硬编码(如果可以的话,甚至是资源/内容),因为外部系统的一个版本可能会被完全丢弃,而我不想为不得不追逐所有字符串而烦恼。
我还需要标志或等效功能,因为我可能仍会收到没有系统版本标识的通信,默认情况下适用于所有版本。另一种通信可能只适用于某些选择的版本,例如。仅适用于 2.0 以后等。
请注意,我可以通过使用 Switch/If 轻松实现这一点,但我不希望有任何硬编码,除非没有其他(简单)方法。我在这里主要关心的是具有类似于标志的功能,但可以轻松识别带小数位的值,例如 1.0 或 1.2 或 1.3.1 (尽管在历史上它们从未有双小数点),并提供编译时间故障。我对其他机制的建议持开放态度,但我真的更希望它是一个简单的逻辑,因为它是整个过程中非常微不足道的一部分。
c# - 使用 Flags 枚举时如何减少 ASP.NET MVC 视图中的代码重复
原谅我的无知。没有做很多 MVC 工作,我确信一定有更好的方法来做到这一点,但我似乎找不到它。我有一个这样的标志枚举:
我的模型上的 SelectedServices 属性具有此类型的值。在视图中,我为每个可能的服务设置了一个复选框。我已经像这样实现了绑定逻辑:
等等。哪个有效,但确实非常混乱。
肯定有更好的方法来封装这个 - 但我不知道 MVC 中的相关概念是什么?
c# - 有没有办法在 c# 中将字符串列表转换为枚举标志?
我在 xml 文档中有一个字符串列表:
我有一个枚举:
有没有办法将 XML 字符串转换为7
or的枚举标志值0111
?
有无数的资源可以反过来做这个,但是我很难找到任何关于从字符串转换为标志的信息。
c# - System.Reflection.TypeAttributes 是带有 FlagsAttribute 的病态枚举类型吗?
枚举类型System.Reflection.TypeAttributes
看起来相当病态。它带有[Flags]
属性并且有不少于四个常数零的同义词。从 Visual-Studio 生成的“元数据”:
为什么有人会在带有 ? 的枚举类型中使用四个名称作为零FlagsAttribute
?看起来真的很疯狂。
看看后果:
x
在这里,类型的零值 的字符串表示形式变为"NotPublic"
。而非零的字符串表示y
变为"AutoLayout, AnsiClass, Class, BeforeFieldInit"
. 关于y
,请注意它只有一个位集 ( 1<<20
),仅名称BeforeFieldInit
就完全解释了该位。所有其他三个名称AutoLayout, AnsiClass, Class,
对值的贡献为零。
到底是怎么回事?
为什么要这样设计?
c# - 如何在 C# 中将字符串转换为标志枚举格式
我有这个枚举:
我收到这样的输入字符串:
如何将它(在 C# 中)转换回: