ようこそ。睡眠不足なプログラマのチラ裏です。

globalコンテキスト キーワードと名前空間エイリアス修飾子(::演算子)

確かC#2.0から地味に(こっそり)追加されたキーワードだったと思いますが、
globalコンテキスト キーワードって、マイナーっぽいですね。
これを使って書いてるコードを仕事では見たことがないし。完全に存在が忘れられている感すらあります。
オライリー本の「プログラミングC# 第4版」の巻末の索引を見てみたけど、どうやら載ってないみたい。
勉強させていただいている「++C++; // 未確認飛行 C++」にも載っていなさそうだし。
まぁ、それほど重要でもないキーワードなのでしょう(笑


で、globalコンテキスト キーワードと、名前空間エイリアス修飾子(::演算子)を
わかりやすく簡単に説明するために、以下のようなコードを書きました。

using System;
using ゆとり = ConsoleApplication1.System;

namespace ConsoleApplication1
{
    namespace System
    {
        class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine(global::System.Math.PI);
                Console.WriteLine(ゆとり::Math.PI);
                Console.ReadKey();
            }
        }

        public class Math
        {
            public const double PI = 3;
        }
    }
}


実行結果

3.14159265358979
3

幸い、説明した人には「わかりやすいです!」と言って頂けました。
でも、なんかいろんな意味でごめんなさいです。