extern alias (C# リファレンス)extern alias (C# Reference)

場合によっては、同じ完全修飾型名を持つ、2 つのバージョンのアセンブリを参照する必要が生じることもあります。You might have to reference two versions of assemblies that have the same fully-qualified type names. たとえば、同じアプリケーション内で、2 つ以上のバージョンのアセンブリを使用する必要が生じることもあるでしょう。For example, you might have to use two or more versions of an assembly in the same application. 外部アセンブリ エイリアスを使用すれば、各アセンブリの名前空間を、エイリアスを付けたルート レベルの名前空間内でラップして、それらを同じファイル内で使用できるようにすることができます。By using an external assembly alias, the namespaces from each assembly can be wrapped inside root-level namespaces named by the alias, which enables them to be used in the same file.


extern キーワードは、アンマネージ コードで記述されたメソッドを宣言するために、メソッド修飾子として使用することもできます。The extern keyword is also used as a method modifier, declaring a method written in unmanaged code.

同じ完全修飾型名を持つ 2 つのアセンブリを参照するには、コマンド プロンプトで次のようにエイリアスを指定する必要があります。To reference two assemblies with the same fully-qualified type names, an alias must be specified at a command prompt, as follows:



これにより、外部エイリアス GridV1 および GridV2 が作成されます。This creates the external aliases GridV1 and GridV2. これらのエイリアスをプログラム内から使用するには、extern キーワードを使用してそれらを参照します。To use these aliases from within a program, reference them by using the extern keyword. 次に例を示します。For example:

extern alias GridV1;

extern alias GridV2;

各 extern エイリアスの宣言では、グローバル名前空間に対応する (ただし、グローバル名前空間内にはない) 追加のルート レベル名前空間が導入されています。Each extern alias declaration introduces an additional root-level namespace that parallels (but does not lie within) the global namespace. そのため、各アセンブリの型は、適切な名前空間エイリアスをルートに持つ完全修飾名を使用して、明確に参照することができます。Thus types from each assembly can be referred to without ambiguity by using their fully qualified name, rooted in the appropriate namespace-alias.

前の例では、GridV1::Gridgrid.dll からのグリッド コントロールで、GridV2::Gridgrid20.dll からのグリッド コントロールになります。In the previous example, GridV1::Grid would be the grid control from grid.dll, and GridV2::Grid would be the grid control from grid20.dll.

C# 言語仕様C# Language Specification

詳細については、「C# 言語の仕様」を参照してください。For more information, see the C# Language Specification. 言語仕様は、C# の構文と使用法に関する信頼性のある情報源です。The language specification is the definitive source for C# syntax and usage.

関連項目See also