:: 演算子 - 名前空間エイリアス演算子

エイリアスが設定された名前空間のメンバーにアクセスするには、名前空間エイリアス修飾子 :: を使います。 :: 修飾子は 2 つの識別子の間でのみ使用できます。 左側の識別子には、名前空間エイリアス、extern エイリアス、または global エイリアスのいずれかを使用できます。 次に例を示します。

  • using エイリアス ディレクティブを使って作成された名前空間エイリアス:

    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);
    }
    
  • extern エイリアス

  • global エイリアス。これはグローバル名前空間エイリアスです。 グローバル名前空間は、名前付き名前空間内で宣言されていない名前空間と型を含んだ名前空間です。 global エイリアスを :: 修飾子と共に使った場合は、ユーザー定義の名前空間エイリアス global が存在していたとしても、常にグローバル名前空間が参照されます。

    次の例では、global エイリアスを使って、グローバル名前空間のメンバーである .NET の System 名前空間にアクセスします。 global エイリアスを使わない場合は、MyCompany.MyProduct 名前空間のメンバーであるユーザー定義の System 名前空間がアクセスされます。

    namespace MyCompany.MyProduct.System
    {
        class Program
        {
            static void Main() => global::System.Console.WriteLine("Using global alias");
        }
    
        class Console
        {
            string Suggestion => "Consider renaming this class";
        }
    }
    

    注意

    global キーワードは、:: 修飾子の左側の識別子に指定した場合にのみ、グローバル名前空間エイリアスとなります。

また、. トークンを使って、エイリアスが設定された名前空間のメンバーにアクセスすることもできます。 ただし、. トークンは型のメンバーにアクセスするためにも使用されます。 :: 修飾子を使う場合、その左側の識別子は、同じ名前を持つ型または名前空間が存在したとしても、常に名前空間エイリアスを参照することが保証されます。

C# 言語仕様

詳細については、C# 言語仕様に関するページの「名前空間エイリアス修飾子」セクションをご覧ください。

関連項目