Operador :: – o operador de alias de namespace
Use o qualificador de alias de namespace ::
para acessar membros de um namespace com alias. O qualificador ::
só pode ser usado entre dois identificadores. O identificador à esquerda pode ser um alias de namespace, um alias externo ou o alias global
. Por exemplo:
Um alias de namespace criado com uma diretiva using de alias:
using forwinforms = System.Drawing; using forwpf = System.Windows; public class Converters { public static forwpf::Point Convert(forwinforms::Point point) => new forwpf::Point(point.X, point.Y); }
Um alias extern.
O alias
global
, que é o alias do namespace global. O namespace global é o namespace que contém namespaces e tipos que não são declarados dentro de um namespace com nome. Quando usado com o qualificador::
, o aliasglobal
sempre faz referência ao namespace global, mesmo se houver o alias de namespaceglobal
definido pelo usuário.O exemplo a seguir usa o alias
global
para acessar o namespace .NET System, que é um membro do namespace global. Sem o aliasglobal
, o namespaceSystem
definido pelo usuário, que é um membro do namespaceMyCompany.MyProduct
, seria acessado:namespace MyCompany.MyProduct.System { class Program { static void Main() => global::System.Console.WriteLine("Using global alias"); } class Console { string Suggestion => "Consider renaming this class"; } }
Observação
A palavra-chave
global
é o alias do namespace global apenas quando é o identificador à esquerda do qualificador::
.
Você também pode usar o token .
para acessar membros de um namespace com alias. No entanto, o token .
também é usado para acessar um membro do tipo. O qualificador ::
garante que o identificador à esquerda dele sempre faça referência a um alias de namespace, mesmo que exista um tipo ou namespace com o mesmo nome.
Especificação da linguagem C#
Saiba mais na seção Qualificadores de alias de namespace da Especificação da linguagem C#.