问题标签 [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 投票
1 回答
231 浏览

c# - 如何检查事件处理程序中的条件

我有一个方法 Modify 里面做一个操作 ClientModify

在这里我想要的是 ClientModify 应该只在事件处理程序“ServerEvents”中完成三个事件之后执行,否则它应该返回 retval 为假。在执行“Spa.ClientModify”操作之前我该如何进行检查

我如何在事件处理程序“ServerEvents”中添加变量 bool Yes=false 并且一旦完成此检查,否则如果(this_event.objectName ==“serverstate”)我将其设置为 yes=true,但是我面临的问题是我无法在 Modify() 方法中获得是布尔变量,我将获得 ServerEvents,但无法实例化。我该怎么做,或者是否有任何其他机制

0 投票
1 回答
14721 浏览

php - PHP函数标志,如何?

我正在尝试创建一个以标志作为参数的函数,但输出总是与预期的不同:

我该如何解决这个问题?

0 投票
1 回答
361 浏览

c++ - 带有名称的枚举标志

我将使用枚举标志来初始化我的类。枚举是:

如果我是对的,在这种情况下,要检查 STATIC 我需要这样做:

我知道这样做:

我需要删除枚举名称。但这真的有必要吗?我不能在不到处键入名称的情况下使用命名枚举的枚举值吗?

0 投票
4 回答
20249 浏览

c++ - 标志如何在 C 中工作?

最近我在 C 和 C++ 中遇到了几个“标志”的例子,我不太明白它们是如何工作的。在查看了一些源代码后,我注意到标志值通常以十六进制定义,如下所示:

我的直觉表明这些价值观正在被结合起来。标志是否通过将所有标志值组合成一个 int 来工作?如果我同时使用这两种方法FLAG1 | FLAG2,结果会是0x00000011什么?

我是否需要创建具有位偏移的枚举,或者我可以使用升序整数如:

0 投票
7 回答
5646 浏览

c++ - 为什么 C++ 支持十六进制赋值,但缺少二进制赋值?如何最好地存储标志?

我有一组用于从 C 移植到 C++ 的程序中的位标志。

开始...

我的程序中的标志以前定义为:

...现在我收集到常量(相对于类常量等)的#defines 通常被认为是错误的形式。

这引发了关于如何最好地在 c++ 中存储位标志以及为什么 c++ 不支持将二进制文本分配给 int 的问题,例如它允许以这种方式分配十六进制数字(通过“0x”)。这些问题总结在这篇文章的最后。

我可以看到一个简单的解决方案是简单地创建单个常量:

我们称这个想法为 1。

我的另一个想法是使用整数枚举:

但是让我感到困扰的一件事是,当涉及到更高的值时,它的直观性似乎……即

我们将此方法称为选项 2。

我正在考虑使用 Tom Torf 的宏解决方案:

转换为内联函数,例如

这是疯了吗?还是看起来更直观?我们称这个选择为 3。

回顾一下,我的首要问题是:

1. 为什么c++不支持“0b”值标志,类似于“0x”?
2. 定义标志的最佳样式是什么...
i。 命名空间包装的常量。
ii. 直接分配的无符号整数的命名空间包装枚举。
iii. 使用可读二进制字符串分配的无符号整数的命名空间包装枚举。

提前致谢!并且请不要主观地关闭这个线程,因为我真的想获得关于什么是最好的风格以及为什么 c++ 缺乏内置的二进制赋值功能的帮助。


编辑 1

一点额外的信息。我将从文件中读取 32 位位域,然后使用这些标志对其进行测试。因此,当您发布建议时请记住这一点。

0 投票
2 回答
1236 浏览

c# - C# - [标志] 枚举和扩展方法的帮助

我有以下枚举:

作为开始,我不确定这些标志是否正确。

我这样做是为了让我有一种流畅的方式来定义实体框架的“包含”(因为 EF Include 方法需要一个字符串,我不想将它暴露给 UI)。

所以我想要它,以便我的服务层可以接受PostAssociations,并且在我的服务层中,我利用扩展方法将其转换为字符串 []。(我的回购然后为了做.Include而分裂)。

我对 Flags Enum's 做的不多,所以我为我的无知道歉。:)

这是我想要的“真值表”(枚举值,转换后的字符串 [])

不能有没有评论的评论用户。

所以我需要三件事的帮助:

  1. 如何设置枚举以匹配该真值表?
  2. 我如何为这些示例之一调用服务层?
  3. 如何编写扩展方法将该枚举转换为字符串数组?

当然,如果你们能想出一个更好的方法来做我想做的事情,我也会考虑的。本质上,我试图掩盖 Enum 后面的 EF Include 的“魔术字符串”,并且考虑到您可以执行多个包含(或不包含),我认为这对于 Flags Enum 来说是一个很好的例子。

多谢你们。

0 投票
2 回答
2514 浏览

c# - 标记 Enum 和具有重叠含义的互斥 Enum

我的模型必须处于以下互斥状态之一:NewIn ProgressClosed

该应用程序允许用户保存记录,然后通过提供匹配状态列表来检索它们。

我继承了一个 SQL 数据库,其中状态存储为表示按位标志的整数。我必须调用一个使用按位运算进行匹配的过程:

这对我来说都很好。

现在,在 C# 实现中,很明显我应该定义标志来表示查询中匹配状态的组合:

问题是记录的模型必须具有代表单个状态的属性。

问题是,这个记录的模型的 State 属性应该是什么类型:

1)只需使用枚举标志:

2)为互斥状态定义一个新的枚举类型:

#1 的缺点是语义:States 枚举表示状态的组合,而不是单个状态。

#2 的缺点是实用的:在存储状态时,我必须确定要存储的基础值。

你能想出一种方法来代表所有这些,同时尽量减少这些缺点吗?

0 投票
3 回答
98168 浏览

c - 如何删除 C 中的标志?

有一个变量包含一些标志,我想删除其中一个。但我不知道如何删除它。

这是我设置标志的方式。

0 投票
1 回答
372 浏览

xcode - xcode 似乎忽略了预处理器标志

我已经看过所有关于通过“预处理器宏”设置设置预处理器标志的帖子。出于某种原因,Xcode 似乎忽略了我的设置。

我正在构建一个通过 CMake 创建的 Xcode 项目。在 Dependencies.cmake 文件中,添加了一些定义。例如:

添加定义(-DUSE_POCO)

添加定义(-DPOCO_STATIC)

当我查看我的 Xcode 项目并编辑目标信息时,我会在“预处理器宏”下看到它们。当我构建项目时,我看到它们在使用的命令行中定义。现在,如果我尝试更改它们,我的更改将无效。我尝试在“预处理器宏”下将 POCO_STATIC 更改为 POCO_STATIC1,但这被忽略了。

我有以下代码要测试:

如果我删除 1,那么它将无法编译。如果我放回 1,一切都会恢复正常。这意味着,我的更改没有任何效果。

我已经尝试在项目级别使用“预处理器宏”(它是空的),但这也无济于事。我还查看了“其他 C++ 标志”,但无济于事。基本上,这些设置似乎没有传递给编译器(GCC 4.2)。

有任何想法吗?谢谢。

0 投票
2 回答
2679 浏览

python - 你可以在python中标记命令行输入吗?

我使用的许多命令行 .exe 应用程序允许您标记可选输入,例如 program.exe -o outputfile.txt -f F 其中“-o”表示与默认值不同的可选输出文件名,其中“-F”表示关于脚本的另一个选项。

到目前为止,我一直在使用 sys.arg[] 变量将文件名等输入到我的 python 脚本中,但这必须按照设定的顺序进行,是否可以在 python 脚本中标记输入?

[这一切都是因为我不小心将输入名称和输出名称以错误的顺序放置并覆盖了我的输入文件]