使用 FlagsAttribute 标记引用的 dll 中的枚举



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

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

尽管每当我使用.HasFlag()时,VisualStudio都会在代码中将其标记为红色,但它的编译和运行都很好。我可以通过始终将枚举转换为 int(或用注释抑制它,...

然而,我想知道是否有一种更干净的方法,例如将枚举标记为标志一次?

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

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

最新更新