Что является использованием глобальных:: ключевое слово в C#?

Из чего использование global:: ключевое слово в C#? Когда мы должны использовать это ключевое слово?

31
задан John 26 February 2010 в 09:08
поделиться

1 ответ

Технически global не является ключевым словом: это так называемое «контекстное ключевое слово». Они имеют особое значение только в ограниченном программном контексте и могут использоваться как идентификаторы вне этого контекста.

global можно и нужно использовать всякий раз, когда возникает двусмысленность или когда член скрыт. Из здесь :

class TestApp
{
    // Define a new class called 'System' to cause problems.
    public class System { }

    // Define a constant called 'Console' to cause more problems.
    const int Console = 7;
    const int number = 66;

    static void Main()
    {
        // Error  Accesses TestApp.Console
        Console.WriteLine(number);
        // Error either
        System.Console.WriteLine(number);
        // This, however, is fine
        global::System.Console.WriteLine(number);
    }
}

Однако обратите внимание, что global не работает, если для типа не указано пространство имен:

// See: no namespace here
public static class System
{
    public static void Main()
    {
        // "System" doesn't have a namespace, so this
        // will refer to this class!
        global::System.Console.WriteLine("Hello, world!");
    }
}
45
ответ дан 27 November 2019 в 22:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: