【发布时间】:2016-11-06 10:33:56
【问题描述】:
我正在尝试使用 LightningDB.net。其中一种方法接受参数作为枚举标志。
C#中的方法声明:
Open(EnvironmentOpenFlags openFlags = EnvironmentOpenFlags.None, UnixAccessMode accessMode = UnixAccessMode.Default)
当我为 openFlags 提供参数时,例如:env.Open(EnvironmentOpenFlags.NoSync) 我收到编译器错误:
当我为方法的第二个参数提供参数时,它起作用了:
env.Open(accessMode = UnixAccessMode.Default)
任何组合,包括尝试将 enum 转换为 int 然后再返回总是会导致编译器错误。
这是在 VS 2015 上。知道可能是什么原因造成的以及如何解决?
【问题讨论】:
-
我会检查你是否以某种方式引用了同一个 dll 的两个不同版本
-
我好像没有,此外,如果是这样的话,第二个参数也会出现错误,它也是枚举标志类型,对吧?跨度>
-
但也许第二个 Arg 来自不同的 dll
-
实际上这很奇怪,一个不同的程序集导致了这种情况,即使我没有从中打开命名空间。我认为它嵌入了原始的 LightningDB.net 程序集。谢谢指点。