Udostępnij za pośrednictwem


extern alias (odwołanie w C#)

Może być konieczne odwołanie do dwóch wersji zestawów, które mają te same w pełni kwalifikowane nazwy typów. Na przykład może być konieczne użycie co najmniej dwóch wersji zestawu w tej samej aplikacji. Korzystając z aliasu zestawu zewnętrznego, przestrzenie nazw z każdego zestawu można opakować wewnątrz przestrzeni nazw na poziomie głównym o nazwie aliasu, co umożliwia ich używanie w tym samym pliku.

Uwaga

Słowo kluczowe extern jest również używane jako modyfikator metody, deklarując metodę napisaną w kodzie niezarządzanym.

Aby odwołać się do dwóch zestawów z tymi samymi w pełni kwalifikowanymi nazwami typów, alias musi być określony w wierszu polecenia w następujący sposób:

/r:GridV1=grid.dll

/r:GridV2=grid20.dll

Spowoduje to utworzenie aliasów GridV1 zewnętrznych i GridV2. Aby użyć tych aliasów z poziomu programu, odwołaj się do nich przy użyciu słowa kluczowego extern . Na przykład:

extern alias GridV1;

extern alias GridV2;

Każda deklaracja aliasu extern wprowadza dodatkową przestrzeń nazw na poziomie głównym, która jest równoległa (ale nie leży w obrębie) globalnej przestrzeni nazw. W związku z tym typy z każdego zestawu mogą być określane bez niejednoznaczności przy użyciu ich w pełni kwalifikowanej nazwy, zakorzenionej w odpowiednim aliasie przestrzeni nazw.

W poprzednim przykładzie GridV1::Grid będzie to kontrolka siatki z grid.dllelementu i GridV2::Grid będzie kontrolką siatki z grid20.dll.

Korzystanie z programu Visual Studio

Jeśli używasz programu Visual Studio, aliasy mogą być podane w podobny sposób.

Dodaj odwołanie do grid.dll i grid20.dll do projektu w programie Visual Studio. Otwórz kartę właściwości i zmień aliasy z globalnej na GridV1 i GridV2 odpowiednio.

Użyj tych aliasów w taki sam sposób, jak powyżej

 extern alias GridV1;  
  
 extern alias GridV2;  

Teraz możesz utworzyć alias dla przestrzeni nazw lub typu przy użyciu dyrektywy aliasu. Aby uzyskać więcej informacji, zobacz using directive (Używanie dyrektywy).

using Class1V1 = GridV1::Namespace.Class1;

using Class1V2 = GridV2::Namespace.Class1;

Specyfikacja języka C#

Aby uzyskać więcej informacji, zobacz Specyfikacja języka C#. Specyfikacja języka jest ostatecznym źródłem informacji o składni i użyciu języka C#.

Zobacz też