Il qualificatore di spazio dei nomi globale consente di accedere a un membro nello spazio dei nomi globale ("vuoto").
Se si dovesse chiamare un tipo non qualificato (ad esempio MyClass.DoSomething() anziché MyNamespace.MyClass.DoSomething()), si presume che si trovi nello spazio dei nomi corrente. In che modo quindi qualifichi il tipo per dire che si trova nello spazio dei nomi globale/vuoto?
questo esempio di codice (console app) dovrebbe illustrare il suo comportamento:
using System;
namespace MyNamespace
{
public class Program
{
static void Main(string[] args)
{
MessageWriter.Write(); // writes "MyNamespace namespace"
global::MessageWriter.Write(); // writes "Global namespace"
Console.ReadLine();
}
}
// This class is in the namespace "MyNamespace"
public class MessageWriter
{
public static void Write()
{
Console.WriteLine("MyNamespace namespace");
}
}
}
// This class is in the global namespace (i.e. no specified namespace)
public class MessageWriter
{
public static void Write()
{
Console.WriteLine("Global namespace");
}
}
fonte
2009-07-10 07:57:20
Questo non risponde alla domanda perché. Il codice generato utilizza i tipi dichiarati negli spazi dei nomi e ancora globale :: viene utilizzato. –
@Ihar: Global viene utilizzato in modo analogo per specificare che uno spazio dei nomi non deve essere un subnamespace ... –
No - la domanda chiede tre cose: cosa significa (spiegato), cosa fa questo prefisso (spiegato) e dove dovrebbe usarlo (che saprai quando avrai compreso gli altri due punti). La tua domanda - "perché viene usata nei file del designer" non è stata posta dall'interrogante originale. –