在C#中::的目的是什么?

在C#中::的目的是什么?,c#,syntax,C#,Syntax,我在生成的代码中看到了双冒号(:)。我想知道它的目的是什么?这是最重要的。从链接到MSDN页面引用: 命名空间别名限定符(:)用于查找标识符。它始终位于两个标识符之间,如本例所示: global::System.Console.WriteLine("Hello World"); 这是名称空间别名限定符。当可能存在两个具有相同名称和相同命名空间(来自不同程序集)的不同类型时,可以使用它。例如,我们的ORM产品与VistaDB 3和VistaDB 4对话。在这两种情况下,连接类都是VistaDB.

我在生成的代码中看到了双冒号(
)。我想知道它的目的是什么?

这是最重要的。从链接到MSDN页面引用:

命名空间别名限定符(
)用于查找标识符。它始终位于两个标识符之间,如本例所示:

global::System.Console.WriteLine("Hello World");

这是名称空间别名限定符。当可能存在两个具有相同名称和相同命名空间(来自不同程序集)的不同类型时,可以使用它。例如,我们的ORM产品与VistaDB 3和VistaDB 4对话。在这两种情况下,连接类都是VistaDB.Provider.VistaDBConnection。因此,我们
extern alias
将VistaDB 3程序集设置为
vdb3
,将VistaDB 4程序集设置为
vdb4
,现在可以将连接类划分为
vdb3::VistaDB.Provider.VistaDBConnection
vdb4::VistaDB.Provider.VistaDBConnection
。如果没有别名限定符,这些将引发“不明确引用”编译器错误。

但是您不能编写
vdb3.VistaDB.Provider.VistaDBConnection
vdb4::VistaDB.Provider.VistaDBConnection
?请注意,实际上任何别名名称空间都不需要它,而只需要全局名称空间。如果使用任何其他别名,则可以使用常规的c#点语法(即SomeAliasedAssembly.Namespace.Class.等)