Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
25 of 1492 menu
◀ ▶

Квалификатор global

Префикс global:: перед именем типа или пространства указывает поиск с корня всех пространств имён. Его используют, когда локальное имя - класс, пространство или псевдоним - скрывает нужный тип из System или другой библиотеки. Без global:: компилятор найдёт ближайшее совпадение в текущей области.

Синтаксис

global::ПолноеИмяТипа

Пример

Давайте объявим класс System и выведем строку через global::System.Console:

class System { } class Program { static void Main() { global::System.Console.WriteLine("abcde"); } }

Результат выполнения кода:

"abcde"

Пример

Без квалификатора обращение System.Console указало бы на наш класс, а не на пространство:

class System { public static void Demo() { global::System.Console.WriteLine("local"); } } class Program { static void Main() { System.Demo(); global::System.Console.WriteLine("12345"); } }

Результат выполнения кода:

"local" "12345"

Пример

Квалификатор помогает при конфликте имён во вложенном namespace:

namespace App { class Console { public static void WriteLine(string text) { global::System.Console.WriteLine("app:" + text); } } class Program { static void Main() { Console.WriteLine("abcde"); } } }

Результат выполнения кода:

"app:abcde"

Пример

Псевдоним типа не мешает обратиться к оригиналу через global:::

using Out = System.Console; class Program { static void Main() { Out.WriteLine("a"); global::System.Console.WriteLine("b"); } }

Результат выполнения кода:

"a" "b"

Смотрите также

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить