0

在 .Net 中,我可以(并且应该)将FlagsAttribute应用于用作位掩码的枚举。这样我可以使用HasFlag()- 方法,如果我对它们进行按位运算,ReSharper 不会生气。

在一个项目中,我必须使用用 vb6 编写的 dll 中的枚举,当然它没有FlagsAttribute. (我看过代码,值是位标志。)

尽管 VisualStudio 在我使用时将其标记为红色.HasFlag(),但它编译并运行得很好。而且我可以通过始终将枚举强制转换为 int 来“禁用”ReSharper 对按位运算的警告(或用注释抑制它,......)

但是我想知道是否有一种更清洁的方法,例如将枚举标记为标志一次?

4

1 回答 1

3

你不能标记一个外部依赖——如果你有一个dll,无论它的来源是什么,你都不能简单地改变它的内部(嗯,你可以,但这需要重写二进制文件)。

一种选择是在 VB6 和您的之间编写您自己的标志枚举和映射器,只需在代码中使用您的版本,而忽略映射层中的问题。

于 2012-06-01T12:33:13.450 回答