Tag: 标志

Enum.HasFlag,为什么没有Enum.SetFlag?

我必须为我声明的每个标志类型构建一个扩展方法,如下所示: public static EventMessageScope SetFlag(this EventMessageScope flags, EventMessageScope flag, bool value) { if (value) flags |= flag; else flags &= ~flag; return flags; } 为什么没有一个Enum.SetFlag就像有一个Enum.HasFlag ? 另外,为什么这总不起作用? public static bool Get(this EventMessageScope flags, EventMessageScope flag) { return ((flags & flag) != 0); } 例如,如果我有: var flag = EventMessageScope.Private; 并检查它: if(flag.Get(EventMessageScope.Public)) 其中EventMessageScope.Public确实是EventMessageScope.Private | EventMessageScope.PublicOnly EventMessageScope.Private | […]

基于带标志的枚举的MultiSelect WPF ComboBox / ListBox

所以我可能会稍微推动界限…… 基本上我有以下枚举,用C#代码声明: [Flags] public enum FlaggedEnum : int { Option1 = 1, Option2 = 2, Option3 = 4, Option4 = 8, … Option16 = 32768, None = 0 } 此枚举是我已成功绑定到DataGrid对象的对象的成员。 成功意味着我已成功绑定所有其他字段。 🙂 我想要实现的是一个控件,其中检查上面所有适当的选项,其行为和行为类似于ComboBox / ListBox。 因此,您单击该字段并弹出一个下拉菜单,可以“检查”所需的任何选项。 控件还必须能够从枚举中读取并编写枚举。 我是一个WPF新手,所以我不知道在哪里可以创建一个ComboBox并绑定到列…任何帮助将不胜感激!

WS_EX_TRANSPARENT – 它实际上做了什么?

在我的项目中,我创建了一个由用户控制的不透明度的表单。 如果表单是完全透明的,那么鼠标事件会“通过”(没有我的干预),否则我的表单会处理它们。 在阅读此问题并覆盖CreateParams属性以在WS_EX_TRANSPARENT上设置WS_EX_TRANSPARENT标志后,它现在允许鼠标事件在不透明度为任何值<255时通过。 这正是我想要的,但它让我担心我不明白它为什么会起作用。 根据我的阅读,WS_EX_TRANSPARENT旨在通过在Paint方法中从其下面的表单中“窃取位”使表单显得透明,因此: 我的表单的Paint方法及其中的所有控件都不应该被调用,对吧? 由于WS_EX_TRANSPARENT应该导致Windows覆盖它们,那么为什么它会影响输入处理而不影响我的表单? 不透明度应该对鼠标事件的处理没有影响,就像要覆盖Paint一样,“局部”不透明度应该不重要,不是吗? 有人可以解释一下,这面旗帜究竟是做什么的 它是如何工作的?

如何在NHibernate中查询存储为枚举的标志

如何进行HQL或Criteria搜索(后者是首选),涉及用作标志的枚举。 换句话说,我有一个持久的枚举属性,存储某种标志。 我想查询所有设置了这些标志之一的记录。 使用Eq当然不会起作用,因为只有那是唯一的标志才会成立。 使用Criteria API解决这个问题是最好的,但是如果只使用HQL这样做也很好。

属性真的有什么作用?

应用[Flags]真的有什么作用? 我知道它会修改Enum.ToString的行为,但它会做什么吗? (例如,不同的编译器或运行时行为等) 编辑 :是的,我知道它记录了枚举旨在用作按位标志的事实,并且将它应用于位标志更合乎逻辑。 我更多地询问具体的行为变化,而不是一般的编程实践。

如何检查文件是否在C#中签名?

我正在编写一个需要加载其他一些文件的程序。 有没有办法检查这些文件是否已签名,没有右键单击并检查? 我使用300-400个文件,每隔几天就需要检查一次,我需要检查DLL / EXE / CAB / OCX / MSI(也许还有vbs / js) 有办法检查吗?