:: 演算子 - 名前空間エイリアス演算子
エイリアスが設定された名前空間のメンバーにアクセスするには、名前空間エイリアス修飾子 ::
を使います。 ::
修飾子は 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); }
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# 言語仕様に関するページの「名前空間エイリアス修飾子」セクションをご覧ください。
関連項目
.NET