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.dll
elementu 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#.