我在生成的代码中看到了双冒号(::
)。我想知道它的目的是什么?
答案 0 :(得分:49)
这是namespace alias qualifier operator。引用链接到MSDN页面:
命名空间别名限定符(
::
)用于查找标识符。它始终位于两个标识符之间,如下例所示:global::System.Console.WriteLine("Hello World");
答案 1 :(得分:34)
这是名称空间别名限定符。当有两个不同类型具有相同名称和相同名称空间(来自不同程序集)的潜力时,可以使用它。例如。我们的ORM产品与VistaDB 3和VistaDB 4进行了对话。在这两种情况下,连接类都是VistaDB.Provider.VistaDBConnection。所以我们extern alias
将VistaDB 3程序集vdb3
和VistaDB 4程序集vdb4
组合起来,现在可以将连接类消歧为vdb3::VistaDB.Provider.VistaDBConnection
和vdb4::VistaDB.Provider.VistaDBConnection
。如果没有别名限定符,则会引发“模糊引用”编译器错误。
答案 2 :(得分:-5)
这是范围解析运算符:
http://en.wikipedia.org/wiki/Scope_resolution_operator
范围解析运算符(::) in C ++用于定义已经 声明的成员函数(在 带有.hpp或.h的头文件 扩展)类