具有混合语言解决方案的全局命

时间:2014-09-03 16:20:51

标签: c# .net vb.net namespaces

我有一个VB.NET项目,它有对另一个VB.NET项目和一个C#项目的项目引用。每个引用的程序集都定义了一个具有相同名称的类,比如Class1。在任何一种情况下,我都无法在没有名称空间设置的情况下访问它,即Dim c As Class1,这将是不明确的。

编译器强迫我使用

Dim c As Global.C#Namespace.Class1

但是VB.NET类可以省略Global

Dim c As VBNamespace.Class1

在这种情况下,Global标识符的作用是什么,为什么只有C#引用?为什么在VB.NET案例中没有必要(实际上Global.VBNamespace.Class 没有编译)?

1 个答案:

答案 0 :(得分:0)

有一个遗留类与引用的C#命名空间名称同名。编译器将该标识符识别为类,而不是引用的程序集中的名称空间。

重要的是,编译器被名称空间和共享同名的类混淆了。