rksoftware

Visual Studio とか C# とかが好きです

C# 2.0 以降の新機能の確認 - C# 2.0 - :: 演算子

C# 2.0 以降の新機能を一つづつ確認していきます。
以前に一度行ったのですが、公式ドキュメント再編でリンク切れしているところを見つけてしまったので。今ならもっと簡潔なサンプルが欠けるところもあるだろうし、せっかくなので今もう一度確認して行きます。

:: 演算子

 https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/operators/namespace-alias-qualifer
  名前を検索する名前空間エイリアスを指定する。global キーワードを指定すると、常にグローバル名前空間で検索が実行される。

using A = B;

class Program
{
    static void Main(string[] args)
    {
        // A.WriteLine();      // <- これはできない。A が class A なのか using A = B; なのかわからない
        // A.C.WriteLine();    // <- これはできない。A が class A なのか using A = B; なのかわからない

        global::A.WriteLine();  // A -- global 空間の A つまり class A
        A::C.WriteLine();       // C -- A 空間、つまり using A = B;
    }
}

class A
{
    internal static void WriteLine()
    {
        System.Console.WriteLine("A");
    }
}

namespace B
{
    class C
    {
        internal static void WriteLine()
        {
            System.Console.WriteLine("C");
        }
    }
}