Odkazy na prvky deklarované (Visual Basic)
Pokud váš kód odkazuje na element deklarovaný Visual Basic kompilátor odpovídá názvu v odkaz na příslušné prohlášení tohoto názvu.Pokud se stejným názvem je deklarována více než jeden prvek, můžete řídit, kterým tyto prvky je odkazovat kvalifikační jeho název.
Kompilátor pokusí najít odkaz na prohlášení s názvem název zpomalit.To znamená spustí kód odkazu a pasivního funguje prostřednictvím po sobě následujících úrovní obsahující prvky.
Následující příklad zobrazuje odkazy na dvě proměnné se stejným názvem.Příklad deklaruje dvě proměnné, každý s názvem totalCount, na různých úrovních oboru v modulu container.Při postupu showCount zobrazí totalCount bez kvalifikace, Visual Basic kompilátor řeší odkaz na prohlášení s úzkým rozsahem totiž místní prohlášení uvnitř showCount.Pokud splní totalCount obsahující modul container, kompilátor řeší odkaz na prohlášení s širším rozsahem.
' Assume these two modules are both in the same assembly.
Module container
Public totalCount As Integer = 1
Public Sub showCount()
Dim totalCount As Integer = 6000
' The following statement displays the local totalCount (6000).
MsgBox("Unqualified totalCount is " & CStr(totalCount))
' The following statement displays the module's totalCount (1).
MsgBox("container.totalCount is " & CStr(container.totalCount))
End Sub
End Module
Module callingModule
Public Sub displayCount()
container.showCount()
' The following statement displays the containing module's totalCount (1).
MsgBox("container.totalCount is " & CStr(container.totalCount))
End Sub
End Module
Kvalifikační název prvku
Chcete-li přepsat tento proces hledání a určit název deklarované v širším rozsahu, musíte nárok název nadřazeného prvku širší rozsah.V některých případech také mít nárok obsahující prvek.
Kvalifikační název znamená předcházejících v příkazu zdroje s informacemi, který označuje, kde je cílový prvek definováno.Tyto informace se nazývá kvalifikace řetězec.Může obsahovat jeden nebo více oborů názvů a modul, třídy nebo struktury.
Řetězec kvalifikace by jednoznačně určit modul, třídy nebo struktury obsahující cílový prvek.Kontejner může zase umístěn ve jiného prvku, obvykle oboru názvů.Bude pravděpodobně nutné zahrnout několik prvků obsahující řetězec kvalifikace.
Přístup k element deklarovaný kvalifikováním názvu |
|
Pravděpodobně také poskytnout odkaz na název aplikace má přístup k více než jedné programovací element, který má stejný název.Například System.Windows.Forms a System.Web.UI.WebControls obsahovat oba obory Label třídy (System.Windows.Forms.Label a System.Web.UI.WebControls.Label).Pokud aplikace používá obě nebo definuje vlastní Label třídy, musí rozlišovat různé Label objektů.Deklarace proměnné zahrňte aliasu oboru názvů nebo importovat.Následující příklad používá alias importu.
' The following statement must precede all your declarations.
Imports win = System.Windows.Forms, web = System.Web.UI.WebControls
' The following statement references the Windows.Forms.Label class.
Dim winLabel As New win.Label()
Členy jiné prvky obsahující
Při použití sdíleném členem jiné třídy nebo struktury, musí nejprve kvalifikovat název členu, proměnná nebo výraz, který odkazuje na instanci třídy nebo struktury.V následujícím příkladu demoClass je instancí třídy s názvem class1.
Dim demoClass As class1 = New class1()
demoClass.someSub[(argumentlist)]
Samotný název třídy nelze použít ke kvalifikaci člen, který není Sdílené (Visual Basic).Musíte nejprve vytvořit instanci v objektové proměnné (v tomto případě demoClass) a pak odkazovat podle názvu proměnné.
Pokud má třídy nebo struktury Shared člena, máte nárok tento člen s názvem třídy nebo struktury nebo proměnná nebo výraz, který odkazuje na instanci.
Modul nemá žádné samostatné instance a jejími členy jsou Shared ve výchozím nastavení.Proto nárok modul člen s názvem modulu.
Následující příklad ukazuje kvalifikované odkazy na postupy členských modulu.Příklad deklaruje dvě Sub postupy, oboje s názvem perform, v různých modulů v projektu.Každou z nich můžete zadat bez kvalifikace ve vlastním modulu, ale musí být kvalifikovanou Pokud odkaz z jiné místo.Protože poslední odkaz v module3 není způsobilá perform, kompilátor nemůže vyřešit tento odkaz.
' Assume these three modules are all in the same assembly.
Module module1
Public Sub perform()
MsgBox("module1.perform() now returning")
End Sub
End Module
Module module2
Public Sub perform()
MsgBox("module2.perform() now returning")
End Sub
Public Sub doSomething()
' The following statement calls perform in module2, the active module.
perform()
' The following statement calls perform in module1.
module1.perform()
End Sub
End Module
Module module3
Public Sub callPerform()
' The following statement calls perform in module1.
module1.perform()
' The following statement makes an unresolvable name reference
' and therefore generates a COMPILER ERROR.
perform() ' INVALID statement
End Sub
End Module
Odkazy na projekty
Použití Veřejné (Visual Basic) prvky definované v jiném projektu, musíte nejprve nastavit referenční do knihovny sestavení nebo typ daného projektu.Chcete-li nastavit odkaz, klepněte na tlačítko Přidat odkaz na na projektu nabídky nebo použití / Reference (Visual Basic) volba kompilátoru příkazového řádku.
Můžete například použít model objektu XML .NET Framework.Pokud nastavíte odkaz System.Xml oboru názvů, můžete deklarovat a používat všechny jeho třídy jako XmlDocument.Následující příklad používá XmlDocument.
' Assume this project has a reference to System.Xml
' The following statement creates xDoc as an XML document object.
Dim xDoc As System.Xml.XmlDocument
Import obsahující prvky
Můžete použít Importuje příkaz (.NET oboru názvů a typ) na import obory názvů, které obsahují moduly nebo třídy, které chcete použít.Umožňuje odkazovat na prvky definované v importované oboru názvů bez plně kvalifikované názvy.V následujícím příkladu přepíše předchozí příklad importovat System.Xml oboru názvů.
' Assume this project has a reference to System.Xml
' The following statement must precede all your declarations.
Imports System.Xml
' The following statement creates xDoc as an XML document object.
Dim xDoc As XmlDocument
Navíc Imports prohlášení lze definovat alias importu pro každou importovanou oboru názvů.Proto může být zdrojový kód kratší a snadněji číst.V následujícím příkladu přepíše předchozí příklad použití xD jako alias System.Xml oboru názvů.
' Assume this project has a reference to System.Xml
' The following statement must precede all your declarations.
Imports xD = System.Xml
' The following statement creates xDoc as an XML document object.
Dim xDoc As xD.XmlDocument
Imports Příkaz neprovede prvky z jiných projektů aplikace k dispozici.Nepřijme, místo nastavení odkaz.Obor importu pouze odstraní požadavek kvalifikovat názvy definované v tomto oboru názvů.
Můžete také použít Imports příkaz Importovat moduly, třídy, struktury a vyčíslení.Potom můžete členy takové prvky importovaných bez kvalifikace.Vždy však musí využívat sdíleném členy tříd a struktur, proměnná nebo výraz, jehož výsledkem instance třídy nebo struktury.
Pokyny pro pojmenování
Při definování dvou nebo více programovací prvky, které mají stejný název dvojznačnosti může být výsledkem kompilátor pokusí přeložit odkaz na tento název.Pokud více než jednu definici je v oboru, nebo pokud žádná definice v oboru, odkaz je irresolvable.Příklad naleznete na této stránce nápovědy "Kvalifikovaný Příklad odkazu".
Dvojznačnosti se můžete vyhnout tím, že všechny prvky jedinečné názvy.Poté můžete provést libovolný prvek referenční aniž kvalifikovat název oboru názvů, modulu nebo třídy.Také snížit šanci omylem odkazující na nesprávném prvku.
Stínový provoz
Když dvě programovací prvky sdílejí stejný název, můžete skrýt jeden z nich, nebo stín, jiný.Stínovaný prvek není k dispozici pro referenci; místo, když v kódu používá název prvku na stínovaný Visual Basic kompilátor je řeší stínového provozu prvku.Podrobnější vysvětlení s příklady viz Stínový provoz v jazyce Visual Basic.
Viz také
Úkoly
Jak: Upravte vlastnosti projektu a nastavení konfigurace
Referenční dokumentace
Importuje příkaz (.NET oboru názvů a typ)
Koncepty
Deklarovaný názvy prvků (Visual Basic)