繁体   English   中英

vb.net中不明确的类成员

[英]Ambiguous class members in vb.net

我试图在vb.net中使用来自C#程序集的类。 该类具有不明确的成员,因为vb.net不区分大小写。 这个类是这样的:

public class Foo {

  public enum FORMAT {ONE, TWO, THREE};

  public FORMAT Format {
    get {...}
    set {...}
   }
}

我尝试访问枚举:Foo.FORMAT.ONE

这是不可能的,因为还有一个名为'format'的属性。

我无法改变C#程序集。 我怎样才能解决这个问题并从vb.net引用enum?

我认为你不能解决这个问题。 与您尝试使用的C#组件的作者联系,并说服他们修复他们的代码。

顺便说一下,这是CLSCompliant(true)属性背后的主要原因,如果您正在编写API或其他语言,您应该始终设置其他语言的概率很高。 它会标记此问题,以便原作者能够正确识别和修复。

有几种方法可以解决它,但两者都不是一个好的选择。

一个是创建一个C#项目并完全包装该类,将模糊的成员更改为明确的成员。 根据课程的大小,它可能会有很多工作,但显然你只需要包装你需要的成员。

另一种方法是使用反射,这不像包装那么多,但与作者首先正确编写代码相比,仍然是毫无意义的工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM