这是什么意思?

4 .net c#

正如标题所说的那样,我认为当我一段时间看到它时,我正在查看c#代码,我从来没有注意到它,但::c#中的意思是什么.我想我看到了类似的东西myVar::Process.Start()

Ode*_*ded 11

它是命名空间别名限定符 - 如果您使用命名空间别名:

using config = System.Configuration;

...

var value = config::ConfigurationManager.AppSettings["Somthing"];
Run Code Online (Sandbox Code Playgroud)

当您在同一范围内具有相同名称的类型时,它有助于消除歧义.

例如 - 如果你有几个Leg类(一个用于家具,一个用于旅程的一段),并且两者都在导入的命名空间中,结果是当你Leg在代码中使用时,编译器无法分辨你的意思,然后,如果命名空间中有命名空间别名,则可以使用它<alias>::Leg来引用您的确切类型.

全局命名空间有一个默认别名 global.


Nom*_*Sim 9

它在文档中:

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

global::System.Console.WriteLine("Hello World");
Run Code Online (Sandbox Code Playgroud)

如何:使用命名空间别名限定符(C#编程指南)可能也很有用.