在.Net中,我可以(并且应该)将FlagsAttribute
应用于用作位掩码的枚举。这样我可以使用HasFlag()
- 方法,如果我对它们进行按位操作,ReSharper就不会生气。
在一个项目中,我必须使用vb6中编写的dll的枚举,当然它没有FlagsAttribute
。 (我看过代码,值是位标志。)
尽管我使用.HasFlag()
时VisualStudio会将其标记为红色,但它编译并运行得很好。我可以通过将枚举强制转换为int(或用注释来抑制它,......)来“禁用”按位操作的ReSharper警告。
但是我想知道是否有一种更清洁的方法,比如将枚举标记为标志一次?
答案 0 :(得分:3)
你无法标记外部依赖 - 如果你有dll
,无论其来源如何,你都不能简单地改变它的内部(嗯,你可以,但那会需要重写二进制文件。)
一个选项是在VB6和你的之间编写自己的标志枚举和映射器,只需在代码中使用你的版本,然后忽略映射层中的问题。