:: operator — operator aliasu przestrzeni nazw
Użyj kwalifikatora ::
aliasu przestrzeni nazw, aby uzyskać dostęp do elementu członkowskiego aliasowanej przestrzeni nazw. Kwalifikator można używać ::
tylko między dwoma identyfikatorami. Identyfikator po lewej stronie może być jednym z aliasów przestrzeni nazw, aliasu extern lub aliasu global
. Na przykład:
Alias przestrzeni nazw utworzony za pomocą dyrektywy aliasu:
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); }
Alias
global
, który jest globalnym aliasem przestrzeni nazw. Globalna przestrzeń nazw to przestrzeń nazw zawierająca przestrzenie nazw i typy, które nie są deklarowane w nazwanej przestrzeni nazw. W przypadku użycia z::
kwalifikatoremglobal
alias zawsze odwołuje się do globalnej przestrzeni nazw, nawet jeśli istnieje alias przestrzeni nazw zdefiniowanej przezglobal
użytkownika.W poniższym przykładzie
global
alias jest używany do uzyskiwania dostępu do przestrzeni nazw platformy .NET System , która jest członkiem globalnej przestrzeni nazw. Bez aliasuglobal
dostęp do przestrzeni nazw zdefiniowanejMyCompany.MyProduct
przezSystem
użytkownika, która jest członkiem przestrzeni nazw, będzie dostępna:namespace MyCompany.MyProduct.System { class Program { static void Main() => global::System.Console.WriteLine("Using global alias"); } class Console { string Suggestion => "Consider renaming this class"; } }
Uwaga
Słowo
global
kluczowe jest globalnym aliasem przestrzeni nazw tylko wtedy, gdy jest to identyfikator po lewej stronie kwalifikatora::
.
Możesz również użyć tokenu.
, aby uzyskać dostęp do elementu członkowskiego aliasowanej przestrzeni nazw. .
Jednak token jest również używany do uzyskiwania dostępu do elementu członkowskiego typu. ::
Kwalifikator gwarantuje, że jego identyfikator po lewej stronie zawsze odwołuje się do aliasu przestrzeni nazw, nawet jeśli istnieje typ lub przestrzeń nazw o tej samej nazwie.
specyfikacja języka C#
Aby uzyskać więcej informacji, zobacz sekcję kwalifikatory aliasu przestrzeni nazw specyfikacji języka C#.