Odstraňování proměnných v jazyce Visual Basic
Na této stránce jsou uvedeny některé běžné problémy, které se mohou vyskytnout při práci s proměnnými v Visual Basic.
Nelze členy přístup k objektu
Kód se pokusí o přístup k vlastnosti nebo metodě objektu, existují dva možné chybové výstupy:
Kompilátor může generovat chybovou zprávu, pokud deklarujete proměnnou objekt určitého typu a přečtěte člena typu nejsou definovány.
Run-time MemberAccessException dojde k objektu přiřazena objektové proměnné nevystavuje členské kódu se pokouší o přístup.U proměnné Datový typ objektu, také získat tuto výjimku, pokud člen není Public.Důvodem je, že pozdní vazby umožňuje přístup pouze k Public členů.
Když Možnost přísné prohlášení nastaví typ kontroly On, objektové proměnné metody a vlastnosti třídy, se kterou deklarujete, je přístup.To ukazuje následující příklad.
Dim p As Object = New System.Windows.Forms.Label
Dim q As System.Windows.Forms.Label = New System.Windows.Forms.Label
Dim j, k As Integer
' The following statement generates a compiler error.
j = p.Left
' The following statement retrieves the left edge of the label
' in pixels.
k = q.Left
V tomto příkladu p lze použít pouze členové Object třídy, které nezahrnují Left vlastnost.Na druhé straně q byla prohlášena za typ Label, takže jej můžete použít metody a vlastnosti Label třídy v System.Windows.Forms oboru názvů.
Správný přístup.
Chcete-li mít přístup všichni členové určité třídy objektu, deklarujte objektové proměnné typu dané třídy, pokud je to možné.Pokud například neznáte objektu zadejte v době kompilace nelze to provést, musíte nastavit Option Strict na Off a deklarovat proměnnou se Datový typ objektu.To umožňuje objekty typu přiřadit proměnné a podniknout kroky k zajištění toho, že je aktuálně přiřazené objektu typu přijatelné.Můžete použít Operátor TypeOf (Visual Basic) za účelem určení.
Další součásti nelze získat přístup k proměnné
Visual Basicnázvy jsou velká a malá písmena.Pokud dvě jména se liší pouze abecední případu, kompilátor je interpretuje jako stejný název.Například považuje za ABC a abc odkázat na deklarované téhož prvku.
Však používá společného jazykového modulu runtime (CLR) malá a velká písmena vazby.Při sestavení nebo knihovna DLL a zpřístupnit ostatních sestaveních jména jsou proto již velká a malá písmena.Například definuje třídu s názvem prvku ABC, a ostatních sestaveních použití třídy prostřednictvím společného jazykového modulu runtime, musí odkazovat na prvek jako ABC.Pokud následně znovu zkompilujte třídy a změnit název elementu k abc, sestavení, použití třídy není možný přístup k prvku.Proto při uvolnění aktualizovanou verzi sestavení byste neměli měnit abecední případ veřejné prvků.
Další informace naleznete v tématu Společný jazykový modul runtime (CLR ).
Správný přístup.
Chcete-li povolit další součásti pro přístup k proměnné za jejich názvy jako kdyby byly velká a malá písmena.Při testování třídu nebo modul, zkontrolujte že ostatních sestaveních vazbu k proměnné, které očekáváte.Po publikování součástí není proveďte libovolné úpravy existující názvy proměnných, včetně změny jejich případů.
Chybné proměnné používá
Pokud máte více než jednu proměnnou se stejným názvem Visual Basic kompilátoru se pokusí přeložit každý odkaz na tento název.Pokud jiný obor proměnných, kompilátor řeší odkaz na prohlášení s úzkým rozsahem.Pokud mají stejného oboru, rozlišení selže a signalizuje kompilátor chybu.Další informace naleznete v tématu Odkazy na prvky deklarované (Visual Basic).
Správný přístup.
Vyhněte se použití proměnné se stejným názvem, ale jiný obor.Pokud používáte jiné sestavení nebo projekty, nepoužívejte názvy definované v těch nejvíce externí součásti.Pokud máte více než jednu proměnnou se stejným názvem, se přesvědčte se, zda je že nárok každý odkaz na něj.Další informace naleznete v tématu Odkazy na prvky deklarované (Visual Basic).
Viz také
Úkoly
Jak: členové přístup k objektu (Visual Basic)
Jak: zjistit, jaký typ odkazuje proměnná objektu (Visual Basic)
Koncepty
Proměnné v jazyce Visual Basic
Deklarace proměnné v jazyce Visual Basic
Objektové proměnné v jazyce Visual Basic
Deklarace proměnné objektu (Visual Basic)
Objekt hodnoty proměnných (Visual Basic)