Na czym polega właściwość aliasów dla referencji montażowych w Visual Studio 8

Kiedy dodaję odniesienie do złożenia do projektu w Visual Studio 8, właściwość Aliases tego odniesienia jest ustawiona na "global". Do czego służy ta właściwość i dlaczego jest ustawiona na global?

MSDN mówi mi, że jest to lista aliasów dla zestawu, ale nie Dlaczego mogę chcieć użyć tej właściwości lub dlaczego większość aliasów jest aliasowana jako "globalna".

MSDN reference

Author: AakashM, 2008-11-13

2 answers

To jest dla "extern aliases". Załóżmy, że chcesz użyć dwóch różnych typów, z których oba są nazywane Foo.Bar (tj. {[2] } w przestrzeni nazw Foo). Dwa typy będą w różnych składach (z definicji) - użyjesz właściwości w VS, aby powiązać alias z każdym odniesieniem, wtedy możesz to zrobić:

extern alias FirstAlias;
extern alias SecondAlias;

using FirstBar = FirstAlias::Foo.Bar;
using SecondBar = SecondAlias::Foo.Bar;

A następnie użyj FirstBar i SecondBar w swoim kodzie.

Więc zasadniczo jest to dodatkowy poziom nazewnictwa - i nie powinieneś go używać, chyba że naprawdę, naprawdę musisz. To zmyli a wielu ludzi. Staraj się unikać wchodzenia w tę sytuację w pierwszej kolejności - ale pamiętaj o tym rozwiązaniu w tych czasach, w których po prostu nie możesz go uniknąć.

 103
Author: Jon Skeet,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-13 09:37:25

Wyszukaj " extern alias"; jest to bardzo rzadko używana funkcja, która jest potrzebna tylko do rozróżnienia pomiędzy dwoma bibliotekami DLL, które zawierają te same typy (na przykład dwie różne wersje tego samego zestawu lub dwa zespoły, które mają klasę, która ma w pełni kwalifikowaną nazwę).

"Globalny" jest wartością domyślną. Na przykład, jeśli masz klasę o nazwie Foo.System, możesz jednoznacznie odwołać się do głównej przestrzeni nazw System Poprzez global::System.

 30
Author: Marc Gravell,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-13 09:42:22