正如标题所说,我想我前一阵子看到这个时正在看c#代码,我从来没有注意到它,但是::
c#中的意思是什么。我想我看到了类似的东西myVar::Process.Start()
user1462199
问问题
6153 次
3 回答
11
它是命名空间别名限定符- 如果您使用命名空间别名:
using config = System.Configuration;
...
var value = config::ConfigurationManager.AppSettings["Somthing"];
当您在同一范围内具有相同名称的类型时,它有助于消除歧义。
例如 - 如果您有多个Leg
类(一个用于家具,一个用于旅程),并且两者都在导入的命名空间中,结果当您Leg
在代码中使用时,编译器无法判断您指的是哪一个,然后,如果您有命名空间的命名空间别名,则可以使用<alias>::Leg
来指代您所指的确切类型。
全局命名空间有一个默认别名 global
。
于 2012-08-08T18:10:16.733 回答
9
它在文档中:
命名空间别名限定符 (::) 用于查找标识符。它始终位于两个标识符之间,如下例所示:
global::System.Console.WriteLine("Hello World");
如何:使用命名空间别名限定符(C# 编程指南)可能也很有用。
于 2012-08-08T18:08:26.137 回答
1
如果您在较低的命名空间中有一个与另一个名称相同的方法或属性,您将使用:: 。例如:
namespace Taylor
{
public Console {get; set;}
}
所以假设你想使用Console.WriteLine();
不使用global::System.Console.WriteLine();
它,默认情况下将使用Taylor.Console
它,因为它指向this
它基本上使它区分命名空间,您指定的;最常见的是:(global
最低级别)。
这个例子有点多余,因为 System.Console 无论如何都会指向它。查看 Oded 的示例可以了解如何在::
动态使用的同时使用它。
于 2012-08-08T18:37:48.257 回答