namespace alias qualifier

namespace ブロック内ではクラス名やネームスペースを相対指定できます。

using Foo;
namespace A.B.C
{
  // :
    public void method()
    {
      X.Y y = new X.Y();
    }

のようなとき、y は A.B.C.X.Y、A.B.X.Y、A.X.Y、Foo.X.Y, X.Y と検索されますが、このうち2つ以上が存在しているとあいまいな参照としてコンパイルエラーになります。
従来だと using を利用してクラス名やネームスペース名の別名を定義するのですが、C# 2.0 からはより的確にクラスを特定するための記述として alias 構文を利用することができます。

    global::X.Y y = new global::X.Y();

global は予約された alias で、常にネームスペースの一番外側です。Foo アセンブリがバージョンアップして、Foo.X.Y クラスが追加されたとしても、この記述であれば X.Y を指し続けるため再コンパイル時にエラーを発生させずにすみます。
従来からある using による別名定義を行った場合、その別名を alias として利用できます。

  using Lx.IO;
  using SIO = System.IO;
  // :
    public void method()
    {
      SIO::Stream stream = new Stream();