Visual Basic | |
---|---|
Jazyková třída | Procedurální , objektově orientovaný , komponentně orientovaný , událostně orientovaný |
Typ provedení | Sestaveno , interpretováno |
Objevil se v | 1991 |
Vývojář | Microsoft |
Přípona souboru | .bas, .cls, .frm, .vbp, .vbg |
Uvolnění | Visual Basic 6.0 (1998 ) |
Typový systém | Statické psaní , silné psaní , dynamické psaní |
Hlavní implementace | Microsoft Visual Studio |
Dialekty | Visual Basic for Applications , Visual Basic Script |
Byl ovlivněn | QuickBasic , BASIC |
ovlivnil | Visual Basic .NET , REALbasic , Gambas , Xojo , Basic4ppc |
webová stránka | msdn.microsoft.com/ru-RU/vstudio/ms788229.aspx |
Mediální soubory na Wikimedia Commons |
Microsoft Visual Basic je programovací jazyk a integrované vývojové prostředí softwaru vyvinuté společností Microsoft Corporation . Jazyk Visual Basic zdědil ducha, styl a částečně i syntaxi svého předka, jazyka BASIC , který má mnoho dialektů. Visual Basic zároveň kombinuje postupy a prvky objektově orientovaných a komponentově orientovaných programovacích jazyků. VB IDE obsahuje nástroje pro návrh vizuálního uživatelského rozhraní, editor kódu s IntelliSense a zvýrazňováním syntaxe a nástroje pro ladění aplikací.
Visual Basic je také dobrým nástrojem pro rychlý vývoj (RAD) databázových aplikací pro operační systémy rodiny Microsoft Windows . Mnoho hotových komponent dodávaných s prostředím je navrženo tak, aby pomohly programátorovi okamžitě začít vyvíjet obchodní logiku obchodní aplikace, aniž by odváděl jeho pozornost na psaní kódu pro spouštění programu, přihlašování k událostem a další mechanismy, které VB implementuje automaticky.
Visual Basic byl poprvé uznán vážnými vývojáři po vydání verze 3. Konečné uznání za plnohodnotný programovací nástroj pro Windows přišlo s vydáním verze 5. Verze VB6, která je součástí Microsoft Visual Studio 6.0, se stala skutečně vyzrálý a na funkce bohatý produkt.
Datum vydání | Verze | Popis |
---|---|---|
května 1991 | 1,0 | Visual Basic 1.0 pro Microsoft Windows . Jako základ jazyka byla vzata syntaxe QBasic a inovací, která pak jazyku přinesla velkou oblibu, byl princip komunikace mezi jazykem a grafickým rozhraním. Tento princip vyvinul Alan Cooper ( Alan Cooper ) a implementoval jej do prototypu stativu (také známého jako Ruby ) |
září 1992 | 1,0 | Visual Basic 1.0 pod DOSem . Nebyl plně kompatibilní s verzí Windows VB, protože se jednalo o další verzi QuickBASIC a běžel v režimu textu na obrazovce. Je zajímavé poznamenat, že balíček obsahoval speciální nástroj, který převáděl projekty této verze do projektů Visual Basic 1.0 pro Windows. Udělala kód co nejvíce kompatibilní s verzí pro Windows, převedla formuláře (i když výsledek byl neuspokojivý kvůli rozdílům v textovém a grafickém režimu) a také v kódu poskytla komentáře s tipy na další vylepšení. |
listopadu 1992 | 2,0 | Visual Basic 2.0. Vývojové prostředí se snáze používá a pracovalo rychleji. Okno Vlastnosti se přesunulo do samostatného seznamu. Přidáno zvýraznění zdrojového kódu . |
1993 | 3.0 | Visual Basic 3.0 byl vydán v edicích Standard a Professional. Kromě toho byl do balíčku přidán engine pro práci s databázemi Accessu . |
srpna 1995 | 4,0 | Visual Basic 4.0 byla verze, která mohla vytvářet 32bitové i 16bitové aplikace Windows. Navíc bylo možné psát třídy ve VB a Visual Basic se konečně stal plnohodnotným kompilátorem , což výrazně zvýšilo rychlost provádění programu. Přidána podpora pro ovládací prvky OLE (OCX), která nahrazuje staré ovládací prvky VBX |
února 1997 | 5,0 | Visual Basic 5.0 - počínaje touto verzí bylo možné spolu s konvenčními aplikacemi vyvíjet vlastní komponenty COM . Kompilací takové komponenty do souboru OCX a jejím doručením bylo možné poskytnout její ovládací objekt nejen koncovému uživateli , ale i dalším vývojářům, poté mohli tento objekt integrovat do svých aplikací. Integrované prostředí zahrnuje P-Code a Native kompilátory. Aplikace jsou spouštěny novým virtuálním strojem implementovaným v dynamické knihovně MSVBVM50.DLL. Také v 1. čtvrtletí letošního roku Microsoft vydává produkt ve speciální edici Visual Basic 5 Control Creation Edition (VB5CCE), která se specializuje pouze na návrh ovládacích prvků ActiveX . |
Polovina roku 1998 | 6.0 | Visual Basic 6.0 – Optimalizovaný provoz virtuálního stroje a přesunuto do MSVBVM60.dll. Vylepšený výkon nativního kompilátoru. Přidány nové funkce pro práci s řetězci a poli. Tato verze jazyka je nejnovější v řadě klasického VB. Microsoft změnil jazykovou politiku pro rodinu Basic a místo vývoje jazyka Visual Basic byl vytvořen zcela nový jazyk, Visual Basic .NET . |
2002 | 7,0 | První vydání Visual Basic .NET . Nejdůležitější vlastností je, že kód je plně spravován .NET Framework Common Language Runtime . Zlomená zpětná kompatibilita s klasickým Visual Basicem (zamrzlý jako VB6). |
dubna 2003 | 7.1 | Microsoft upgradoval Visual Basic .NET, optimalizoval kompilátor. Vydáno s aktualizovanou verzí rozhraní .NET Framework 1.1. |
2005 | 8,0 | Součástí sady Visual Studio 2005 . Vyžaduje rozhraní .NET Framework 2.0. Po vydání Visual Basic .NET 2003 Microsoft vypustil předponu „.NET“ z názvu produktu a další verze se nazývá Visual Basic 2005. |
2008 | 9,0 | Součástí sady Visual Studio 2008 . Vyžaduje rozhraní .NET Framework 3.5 |
2010 | 10,0 | Součástí sady Visual Studio 2010 . Vyžaduje rozhraní .NET Framework 4 |
2012 | 11.0 | Součástí sady Visual Studio 2012 . Vyžaduje rozhraní .NET Framework 4.5 |
2013 | 12.0 | Součástí sady Visual Studio 2013 . Vyžaduje rozhraní .NET Framework 4.5.1 |
2015 | 14.0 (nevydáno jako 13.0) | Součástí sady Visual Studio 2015 . Aktualizováno rozhraní .NET Framework na verzi 4.6 |
2017 | 15,0 | Součástí sady Visual Studio 2017 . |
Po vydání Visual Basic verze 6.0 vývojáři z Microsoftu výrazně změnili směr vývoje této technologie. Visual Basic .NET neumožňuje programovat starým způsobem, protože ve skutečnosti je to úplně jiný jazyk, stejný jako jakýkoli jiný programovací jazyk pro platformu .NET . Individualita jazyka, stejně jako jeho výhody (jednoduchost, rychlost tvorby programů, snadnost použití hotových komponent), při použití v prostředí .NET nejsou tak důležité jako dříve - vše je zaměřeno na schopnosti samotné platformy .NET, na jejích knihovnách tříd. V tuto chvíli (červen 2015) je třeba mluvit o Visual Basic, jako o klasických verzích jazyka 4.0 - 6.0, jeho dialektech: Visual Basic for Applications (VBA) a Visual Basic Scripting Edition (VBScript) a jazyku pro platforma .NET - Visual Basic .NET
V březnu 2020 Microsoft uvedl, že bude podporovat Visual Basic v .NET 5.0 Unified Platform, ale již nebude přidávat nové funkce nebo jazyk vyvíjet [1] [2] .
Proměnné ve Visual Basicu jsou deklarovány operátorem Dim, za kterým následuje název, poté klíčové slovo Asa poté typ proměnné. Pokud je typ vynechán, pak klíčové slovo Asnení zadáno a proměnná je deklarována jako Variant. Pokud neurčíte konstrukci Option Explicitv sekci deklarace, není vyžadována žádná explicitní deklarace proměnných a budou automaticky vytvořeny při prvním použití. Toto chování může vést ke snížení rychlosti provádění programu, protože nedeklarované proměnné budou typu Variant, stejně jako logické chyby spojené s nesprávným zadáním názvu existující proměnné nebo riziko konfliktů v aplikaci při rozsahu proměnné není zcela jasné.
Dim strMessage As String 'deklarace proměnné typu znaku Dim iProductCount As Integer 'deklarace proměnné celočíselného typu Dim dt70YearsOfVictory As Date 'deklarace proměnné pro uložení data a času Dim otherValue ' typ neuveden, proměnná typu Variant Public Sub Main () strMessage = "Ahoj světe!" iProductCount = 125 dt70YearsOfVictory = # 5/9/2015 14:00:00 # ' datum 9. května 2015 14:00:00 _ _ _ otherValue = 12,5 ' typ proměnné Variant, podtyp Double. otherValue = "Wikipedia" ' typ proměnné Varianta, podtyp String. konec subTabulka základních typů jazyka Visual Basic 6.0
název | Velikost typu | Popis datového typu |
---|---|---|
bajtů | 1 bajt | Byte. Navrženo pro ukládání celých čísel od 0 do 255. Pokud je proměnné tohoto typu přiřazena hodnota, která překračuje tyto limity, pak Visual Basic vygeneruje chybu při běhu. |
Celé číslo | 2 bajty | Celý. Navrženo pro ukládání celých čísel v rozsahu − 32 768 až 32 767 . Přípona pro typové označení "%". |
Dlouho | 4 byty | dlouhé celé číslo. Navrženo pro ukládání celých čísel v rozsahu − 2 147 483 648 až 2 147 483 647 . Přípona pro typové označení "&". |
Singl | 4 byty | Jediná přesnost s plovoucí desetinnou čárkou. Rozsah - 3,402823E38 až -1,401298E−45 pro záporné hodnoty; 1,401298E −45 až 3,402823E38 pro kladné hodnoty. Přípona pro typové označení "!" |
Dvojnásobek | 8 bajtů | Dvojitá přesnost s plovoucí desetinnou čárkou. Proměnné tohoto typu umožňují ukládat čísla o délce až 16 číslic a délce až 300 znaků. Rozsah hodnot se pohybuje od -1,80E+308 do 1,80E+308. Přípona je „#“. Výpočty s ním jsou přibližné, protože binární reprezentace čísla se používá podle standardu IEEE 754 . |
Desetinný | 16 bajtů | Škálované celé číslo. Tento typ používá desítkovou reprezentaci čísel. Výpočty s ním, stejně jako s typem Currency, jsou přesné. Rozsah hodnot je od -7,92E+28 do 7,92E+28. Nemůžete přímo deklarovat proměnnou typu Decimal. Lze ji použít pouze jako podtyp varianty a proměnnou lze na tento typ přetypovat pomocí funkce přetypování CDec. |
Boolean | 2 bajty | Booleovský datový typ může ukládat pouze dvě hodnoty: True nebo False, true nebo false. Hodnota true ve VB odpovídá celému číslu −1 a hodnota false se rovná 0 a při přetypování implicitního typu se jakákoli číselná hodnota jiná než nula považuje za pravdivou. Toto chování umožňuje používat logické operátory AND, OR, NOT, XORnejen pro booleovskou algebru, ale také pro bitové operace. [3] |
Tětiva | 10 + 2*N bajtů | Řetěz s proměnnou délkou. Navrženo pro ukládání informací o řetězcích (znakech). Samotný řetězec je uložen v kódování Unicode , takže každý znak je zakódován 2 bajty. Pokud se podíváte na typ zevnitř, pak další 4 bajty slouží k uložení ukazatele na řetězec, 4 bajty na velikost řetězce a samotný řetězec je ukončen nulovými znaky (další 2 bajty). Maximální velikost řádku tedy může být až 2 GB. Přípona jako „$“. |
Řetězec*N | 2*N bajtů | Řetězec konstantní délky. Stejně jako typ String ukládá znaková data, kromě toho, že velikost dat je pevná a je specifikována při deklaraci proměnné. Pokud je hodnota řetězce příliš velká, bude zkrácena na požadovanou velikost. Pokud je řetězec menší, než je požadováno, pak se velikost vyrovná přidáním mezery. Je třeba poznamenat, že pevné řetězce a pole, stejně jako struktury, nemohou být větší než 64 kb. |
datum | 8 bajtů | Datový typ umožňuje ukládat hodnoty času a data mezi půlnocí 1. ledna 100 a půlnocí 31. prosince 9999. Pokud je proměnné přiřazena pouze hodnota data, pak je čas 00:00. Celočíselná jednotka představuje jeden den. To vám umožňuje sčítat a odečítat data pouze pomocí matematických operátorů, ale VB poskytuje specializované funkce pro datum, aby toho dosáhly. |
Objekt | 4 byty | Používá se k uložení odkazu na objekt. Přiřazení k proměnné pro tento typ se provádí pomocí Set. Samotný typ je analogický s IDispatch, ukládá odkaz na rozhraní IDispatch. Pro jakýkoli objekt musíte použít IUnknown. |
Měna | 8 bajtů | Měnový. Tento typ může mít až 4 číslice za desetinnou čárkou a až 14 před ní. Hodnoty jsou desetinná čísla, nikoli binární, jako je tomu u typů s jednoduchou a dvojitou přesností s plovoucí desetinnou čárkou. Výpočty tak budou provedeny přesně. Rozsah hodnot je −922337203685477,6000 až 922337203685477,6000 . Tento typ je preferován pro finanční výpočty. Přípona „@“ |
Varianta | 16 bajtů / 22 bajtů+N bajtů / N-bytů | Proměnná typu Variant může obsahovat data libovolného typu, včetně odkazů na objekty, uživatelem definovaných typů a polí. Visual Basic automaticky provede potřebné transformace dat . Podtyp obsahující číslo vyžaduje 16 bajtů paměti a pro uložení řetězcových dat 22 bajtů + délka samotného řetězce. Rozsah hodnot se rovná rozsahu hodnot podtypu. Tento typ je z hlediska rychlosti provádění nejpomalejší, protože rozbalení a zabalení hodnot zabere čas. |
Jazyk Visual Basic obsahuje mnoho operátorů, kteří jsou zodpovědní za aritmetické operace, porovnávání a přiřazovací operace a zřetězení .
operátor přiřazení
Vícenásobné přiřazení, jak je implementováno v C, není možné. A = B = Cneznamená to Aa Bbude Cmít stejné hodnoty. VB vyhodnotí výraz a přiřadí výsledek B = Cproměnné , nebo , 0 nebo −1, v závislosti na typu. ATrueFalse
Aritmetické operátory
Porovnávací operátory
Logické operátory
Operátoři zřetězení
Ve Visual Basicu, stejně jako v mnoha programovacích jazycích, existují konstrukce, které řídí pořadí, ve kterém jsou akce prováděny. Některé z konstrukcí, jako je GoSuba Return, jsou zachovány kvůli kompatibilitě s dřívějšími verzemi jazyka BASIC, ale implementace jako samostatné procedury může poskytnout strukturovanější kód.
Operátor pobočkyObecná syntaxe:
'Napište příkaz větvení na jeden řádek If < condition > Then [ action_when_condition_is_true ] 'Tento záznam vám umožní provádět akce v závislosti na pravdivosti podmínky If < condition > Then [ action_when_condition_is true ] Else [ action_when_condition_false ] 'Napište víceřádkový příkaz větve If < condition > Then [ action_when_condition_is true ] ElseIf < condition2 > Then [ action_when_condition2_true ] ElseIf < conditionN > Then [ action_when_conditionN_true ] Else [ action_when_condition_false ] End If Výběr operátoraObecná syntaxe:
Vyberte případ < value_tested > 'Proměnná nebo výraz, který má být testován na jednu nebo více podmínek Případ < value_1 > 'Akce se provede, pokud testovaná hodnota odpovídá hodnotě 1 [ action_1 ] Případ < value_2 > , < value_3 > , < value_3 > 'Tests seznam hodnot. Pokud je nalezena shoda, pak se provede akce [ action_2 ] Case < value_5 > To < value_6 > 'Zkontroluje rozsah hodnot [ action_3 ] Case Is >= < value_7 > 'Zkontroluje pravdivost hodnoty s podmínkou [ action_4 ] Case Else ' Akce se provede , pokud žádná z podmínek neselže [ action_5 ] End SelectPříklad: zobrazení různých zpráv v závislosti na hodnotě proměnné
'Zadáme proměnnou a ručně jí dáme hodnotu Dim X As Double X = InputBox ( "Zadejte číselnou hodnotu proměnné X" ) Vyberte Case X 'Zkontrolujte, zda naše hodnota odpovídá nějaké imaginární funkci Case Is < 5 , Is >= 20 , 12 až 15 'Rozsah platných hodnot MsgBox "Platná hodnota pro nějakou funkci" Case Else ' Neplatné hodnoty MsgBox " Hodnotu nelze v některých funkcích použít" End Select Smyčka s počítadlemObecná syntaxe:
For < variable > = < value > To < end_value > [ Step < step_value >] [ statement_block ] [ Exit For ] 'Exit loop Next [ variable ]Příklad: výpočet součtu sudých čísel od 1 do 100
Pro I = 0 až 100 Krok 2 Součet = Součet + I Další Společný cyklusObecná syntaxe:
For Each < variable > In < collection > [ statement_block ] [ Exit For ] 'Vynutit výstupní smyčku Next [ variable ]Příklad: Zobrazí každý prvek v poli
Dim strItem As Variant Pro každý strItem v poli ( "Apple" , "Hruška" , "Plum" ) Tisk strItem Další Podmíněná smyčkaObecná syntaxe:
Do While < condition > 'Smyčka se provede, když je podmínka pravdivá [ blok_příkazů ] [ Exit Do ] 'Vynucené opuštění smyčky Do dokud < podmínka > 'Smyčka se provede, když je podmínka nepravdivá [ blok_příkazů ] [ Konec Provést ] Smyčka While < condition > 'Smyčka se provede, když je podmínka pravdivá [ blok_příkazů ] WendPříklad: Čtení textového souboru řádek po řádku
Otevřít "file.txt" pro vstup jako # 1 Udělej , když ne EOF ( 1 ) 'Vraťte True, pokud se očekává konec souboru Line Input # 1 , strBuffer 'Čtení řádku do proměnné Debug . Print strBuffer 'Výstup do okna ladění Loop Close # 1 Smyčka s postconditionObecná syntaxe:
Proveďte [ blok_příkazů ] [ Konec Proveďte ] Opakujte při < podmínka > Do [ blok příkazů ] [ Konec Do ] Opakovat do < podmínka >Podprogramy jsou jedním ze základních prvků jazyka. Jsou to procedury a funkce.
Visual Basic ve skutečnosti implementuje smyčku zpráv systému Windows. V příkladu formuláře smyčka vyfiltruje zprávu WM_MOUSEMOVEa automaticky vyvolá proceduru Form_MouseMoves parametry: která tlačítka myši byla stisknuta, souřadnice ukazatele. Tento mechanismus skrývá před vývojářem některé aspekty programování v prostředí Windows, což mu umožňuje okamžitě začít psát komerční kód. Ve většině případů třída úloh, které mají být řešeny, nebude vyžadovat, aby programátor věděl o zprávách a funkcích oken. Ale Visual Basic neomezuje programátora v implementaci zpracování zpráv okna. To umožňuje velmi flexibilní přístup k vytváření aplikací, ale také vyžaduje dostatečné zkušenosti s psaním takového kódu, což může způsobit nestabilní běh programu až pád.
Příklad funkce pro řešení kvadratické rovnice:
Private Sub Main () Dim RetX1 As Double , RetX2 As Double Dim strStatus As String strStatus = SolveQuadraticEquation ( 4 , 6 , 2 , RetX1 , RetX2 ) 'Vyřešte rovnici 4*X^2 + 6*X - 2 = 0 'Zobrazit odpověď MsgBox "Resolution: " & strStatus & vbCrLf & _ "X1 = " & RetX1 & vbCrLf & _ "X2 = " & RetX2 , vbInformation End Sub ' Kvadratická rovnice Solve Function Veřejná funkce SolveQuadraticEquation ( ByVal A As Double , _ ByVal B As Double , _ ByVal C As Double , _ ByRef X1 As Double , _ ByRef X2 As Double ) As String Dim D As Double D = ( B * B ) - ( 4 * A * C ) 'Získejte hodnotu diskriminantu Jestliže D >= 0 Pak X1 = ( - B - Sqr ( D )) / ( 2 * A ) ' Vypočítejte kořeny rovnice X2 = ( - B + Sqr ( D )) / ( 2 * A ) SolveQuadraticEquation = "Řešení nalezeno" 'Funkce vrací zprávu o řešení Else SolveQuadraticEquation = "Diskriminant < 0. Bez kořenů" End If End FunctionV tomto příkladu můžete vidět modifikátor před ByValargumenty A, Ba C. Tím je zajištěno, že parametry funkce budou předány hodnotou . Na druhou stranu modifikátor ByRefpředává hodnotu odkazem . U tohoto typu modifikátoru může funkce upravit hodnoty proměnných předávaných jako parametry. Visual Basic ve výchozím nastavení vždy předává hodnoty odkazem, pokud nebyl zadán žádný z modifikátorů.
Programový kód ve Visual Basicu je uložen v modulech. Existují pouze tři typy modulů: modul formuláře (Form), standardní modul (Module) a modul třídy (Class Module).
Jednoduchá interakce mezi objekty je jednou ze základních součástí paradigmatu Visual Basic. Samotný objekt se nazývá instance třídy . Objektový model VB poskytuje různé třídy pro práci s formuláři, ovládacími prvky, schránkou, kolekcemi, obrazovkou atd. Pro interakci s jinými objekty poskytuje třída vývojáři rozhraní sestávající z vlastností , metod a událostí .
Vytvoření nového objektu ze třídy je možné včasnou nebo pozdní vazbou. Pro včasnou vazbu se klíčové slovo používá Newpřed názvem třídy. Pro pozdní vazbu se používá funkce CreateObject, která vrací odkaz na vytvořený objekt. Odkazy se přiřazují proměnným typu Objectpomocí operátoru Set. Přístup k metodám a vlastnostem třídy probíhá prostřednictvím operátoru tečka ., který je umístěn bezprostředně za názvem proměnné typu objektu. Pokud třída obsahuje události, pak jsou proměnné deklarovány s klíčovým slovem WithEvents, takže procedury zpracování událostí budou dostupné.
Příklad ukazuje, jak program spolupracuje s knihovnou Microsoft Scripting Runtime , která poskytuje objekty pro práci se systémem souborů:
Public Sub Main () Dim objFSO As New FileSystemObject 'Vytvořte instanci třídy pomocí příkazu New Dim objWindows As Folder Nastavte objWindows = objFSO . GetFolder ( Environ ( "SYSTEMROOT" )) 'Zavolejte metodu třídy GetFolder a přiřaďte odkaz na výsledný objekt MsgBox "Složka Windows: " & objWindows . Cesta 'Přečtěte si vlastnosti třídy MsgBox "Datum vytvoření: " & Formát ( objWindows . DateCreated , "RRRR-MM-DD H:mm:ss" ) Dim sTextFilePath as String Dim objTS as TextStream sTextFilePath = objFSO . BuildPath ( Environ ( "TEMP" ), "Test file.txt" ) 'Metoda se dvěma parametry vrací hodnotu typu String Nastavte objTS = objFSO . CreateTextFile ( sTextFilePath , True ) objTS . Napište "Ahoj Wikipedie!" objekt . zavřít objFSO . DeleteFile sTextFilePath , True Set objFSO = Nothing 'Assigning Nothing uvolní odkaz a objekt může volat proceduru destruktoru Set objWindows = Nothing 'VB automaticky volá destruktor, když se na objekt již neodkazuje Set objTS = Nothing End SubVisual Basic umožňuje vývojáři vytvářet nové třídy sám. Na rozdíl od jiných programovacích jazyků, jako je Java a C++, Visual Basic nemá plnou podporu pro OOP.
Jak víte, abstraktní třída je potřebná k poskytnutí šablony rozhraní pro jiné třídy. V jazyce Visual Basic lze třídy, které mají členy třídy, ale nemají žádnou implementaci, použít jako abstraktní třídy, ale ve skutečnosti tomu tak není. Vždy můžete vytvářet objekty z tříd jazyka Visual Basic, i když neobsahují kód [4]
Princip zapouzdření funguje ve Visual Basicu. K vymezení přístupu ke členům třídy se při popisu procedur, funkcí, konstant, proměnných a uživatelem definovaných typů používají modifikátory Publica .PrivateFriend
Dědičnost implementace není podporována. Visual Basic poskytuje pouze podporu pro dědičnost rozhraní prostřednictvím rozhraníImplements. Při dědění rozhraní může jakákoli třída fungovat jako základní třída rozhraní. Obecně platí, že jakákoli třída může fungovat jako základní třída rozhraní.
Polymorfismus je vynucován pouze prostřednictvím rozhraní, protože VB nepodporuje dědičnost. Implementace polymorfismu je ukázána na příkladu tříd Car a Aircraft , které implementují rozhraní třídy Transport .
Veřejná funkce třídy ITransport.cls GetMaxSpeed () jako funkce dlouhého konce 'Class CAuto.cls Implementuje ITransport 'Zdědit rozhraní Soukromá funkce ITransport_GetMaxSpeed () As Long 'Implementace metody ITransport_GetMaxSpeed = 240 Koncová funkce 'Class CFly.cls Implementuje ITtransport Soukromá funkce ITransport_GetMaxSpeed () As Long ITransport_GetMaxSpeed = 700 Koncová funkce 'Standardní modul Program.bas Možnost Explicitní Public Sub Main () Dim T As ITransport 'Deklarujte proměnnou typu ITransport Set T = New cAuto WhatTransportSpeed T 'Předáváme odkaz na proceduru, která zavolá požadovanou metodu třídy v závislosti na implementaci Set T = New cFly WhatTransportSpeed T End Sub 'Funkce má argument, který bere odkaz na objekt, který implementuje rozhraní ITransport. Public Sub WhatTransportSpeed ( Transport As ITransport ) MsgBox "Maximum speed: " & Transport . GetMaxSpeed () End SubEditor kódu je textový editor s dalšími funkcemi pro snadné a rychlé zadávání zdrojového kódu:
Integrované vývojové prostředí poskytuje programátorovi bohaté možnosti pro ladění programů. Jednou z výhod Visual Basicu je možnost do značné míry změnit zdrojový kód programu bez jeho úplné rekompilace a restartu. Během ladění procedur má vývojář možnost posunout značku označující aktuálně prováděnou instrukci, a to jak dopředu - přeskočení části kódu, tak zpět - přinutí VB znovu provést instrukce, které již byly zpracovány.
Prostředí mimo jiné poskytuje nástroje pro ladění, jako je Immediate Window, Locals Window, Watch Window a Call Stack Viewer . Tyto pokročilé nástroje umožňují programátorovi provádět hlubokou analýzu studovaného algoritmu v laděné aplikaci.
Visual Basic přejde do režimu ladění, když je splněna jedna z následujících podmínek:
Integrované vývojové prostředí je dodáváno s kompilátorem v P-Code (P-code) , nativním kompilátorem kompatibilním s Back-End x86 a linkerem (linker). Přítomnost dvou kompilátorů umožňuje přiřadit Visual Basic jak kompilovanému, tak interpretovanému jazyku. Bez ohledu na zvolený kompilátor vyžadují aplikace ke svému běhu běhový virtuální stroj Visual Basic, kterým je knihovna MSVBVMXX.DLL, kde XX je jazyková verze [5]
Microsoft Visual Basic 6.0 je dodáván s Package & Deployment Wizard [6] pro vytváření instalačních balíčků založených na projektu Visual Basic. Ve srovnání se svým známým předchůdcem, Setup Wizard, P&D Wizard poskytuje nové funkce, ale bohužel nový nástroj obsahuje některé chyby. Jedním z problémů této aplikace je chyba převodu data, pokud je národní prostředí nastavené v operačním systému uživatele odlišné od amerického. Existují aplikace třetích stran, které poskytují pokročilejší nástroje pro správu instalačních balíčků.
Je také možné instalovat VB aplikace jednoduchým zkopírováním, které se scvrkává na několik kroků:
Počínaje verzí VB 5.0 dostává vývojář příležitost nejen používat hotové komponenty ActiveX , ale také vytvářet své vlastní. VB se stará o veškerou práci při vytváření pomocného kódu, který je určen k registraci informací o komponentě v systémovém registru, implementuje rozhraní IDispatch, vytváří jedinečné GUID používané jako identifikátory pro třídy (CLSID), rozhraní (IID) a knihovny typů ( LIBID) . Díky tomuto přístupu potřebuje programátor pouze vytvořit třídy s potřebnou funkčností.
Vytvoření nových GUID třídy a rozhraní závisí na nastavené možnosti kompatibility na kartě Vlastnosti projektu. Může nabývat jednoho ze tří stavů:
Po dokončení kompilace bude výstupem soubor binární knihovny podle specifikace COM . Tato součást implementuje alespoň 2 rozhraní : IUnknown a IDispatch. Knihovna typů ( TLB ) bude integrována do prostředků spustitelného souboru. Navíc jsou vytvářeny soubory s užitečnými informacemi, jako jsou EXP a LIB.
Visual Basic poskytuje jazyková zařízení pro deklarování a volání funkcí z dynamických knihoven (DLL). Tento mechanismus vám umožňuje rozšiřovat aplikace pomocí dalších knihoven poskytovaných jinými vývojáři, včetně knih napsaných v různých programovacích jazycích. Jednu takovou sadu knihoven poskytuje operační systém Microsoft Windows.
Obecná syntaxe deklarace funkce a procedury je následující:
[ Veřejné | Private ] Declare Sub < procedure_name > lib "dynamic_library_name" [ Alias "alias" ] [ ( parametry ) ] [ Veřejné | Private ] Declare Function < function_name > lib "dynamic_library_name" [ Alias "alias" ] [ ( parametry ) ] [ As return_type ]Aliasy je nutné zadat v řadě případů: použití vyhrazených identifikátorů jazyka Visual Basic v názvu funkce, název obsahuje neplatné znaky nebo jej prostředí nemůže správně interpretovat. Volané funkce musí podporovat konvenci volání StdCall .
Při předání parametru s typem String do funkce WINAPI VB automaticky převede kódování z Unicode na ANSI, po provedení funkce proběhne zpětný převod z ANSI na Unicode. Aby se zabránilo automatické konverzi řetězců, musí být argumenty funkce deklarovány jako Long a ukazatel na řetězec musí být předán pomocí funkce StrPtr, takže lze optimalizovat výkon aplikace, která volá více funkcí.
Příklad volání rozhraní Windows API pro získání úplné cesty k adresáři Windows a zobrazení zprávy na obrazovce:
Funkce Private Declare GetWindowsDirectory Lib "kernel32.dll" Alias "GetWindowsDirectoryA" ( ByVal buffer As String , ByVal nSize As Long ) As Long Funkce Private Declare MessageBox Lib "user32.dll" Alias "MessageBoxA" ( ByVal hWnd As Long , ByVal lpText As String , ByVal lpCaption As String , ByVal wType As Long ) As Long Private Const MB_ICONASTERISK As Long = 64 Public Sub Main () Dim buffer As String 'Proměnná, do které bude přijat výsledek funkce. Dim ret Len As Long buffer = String ( 256 , vbNullChar ) lens = GetWindowsDirectory ( buffer , Len ( buffer )) ' Buffer volání funkce = Left ( buffer , lens ) MessageBox 0 & , "OS nainstalovaný v adresáři: " & buffer , "Information" , MB_ICONASTERISK ' volání funkce End SubJe třeba poznamenat, že volání funkcí WINAPI je spojeno s určitými interními dohodami, konkrétně s tím, jak funkce vrátí výsledek, jaké struktury musí předat, počet argumentů a jejich typy, které budou obsaženy v návratové hodnotě. Vývojáři používají technickou dokumentaci dodanou s knihovnami, se kterými pracují, aby správně deklarovali funkce a struktury.
Jazyk je silně svázán se svým vývojovým prostředím a operačním systémem Microsoft Windows, protože je výhradně nástrojem pro psaní aplikací pro Windows. Vazba na prostředí spočívá v tom, že existuje velké množství nástrojů navržených tak, aby pomáhaly a usnadňovaly programování: vestavěný debugger, prohlížení proměnných a datových struktur za chodu, ladicí okno, nápověda při psaní programu ( IntelliSense ). Všechny tyto výhody činí zbytečným a dokonce nemožným používat Visual Basic mimo vývojové prostředí, například v běžném textovém editoru.
Je však třeba poznamenat, že všechny nedostatky jazyka vyplývají z jeho hlavní výhody - jednoduchosti vývoje grafického rozhraní. Proto mnoho programátorů používá Visual Basic k vývoji uživatelského rozhraní a funkčnost programu je implementována jako dynamické knihovny ( DLL ) napsané v jiných jazycích (například C++ ).
Toto vývojové prostředí se prakticky neliší od klasického Visual Basicu, který je určen pro psaní maker a dalších aplikačních programů pro konkrétní podnikové aplikace. Největší popularitu získal díky použití v balíku Microsoft Office . Rozšířené používání jazyka Visual Basic for Applications spolu s počátečním nedostatkem pozornosti k bezpečnostním problémům vedlo k rozšířeným makrovirům .
Zvláštnosti:
Skriptovací jazyk , což je poněkud zkrácená verze obvyklého jazyka Visual Basic. Používá se především k automatizaci správy systémů Microsoft Windows ak vytváření stránek ASP a skriptů pro Internet Explorer .
Zvláštnosti:
Tento nástroj se používá k vývoji softwaru pro operační systémy Windows CE a Windows Mobile . Zahrnuje IDE, debugger a emulátor pro testování aplikací. eMbedded Visual Basic není založen na plnohodnotném programovacím jazyce Visual Basic, ale na skriptovacím jazyce Visual Basic Scripting Edition . Aplikace jsou kompilovány do P-kódu a spustitelné soubory mají příponu VB, které jsou spojeny s hostitelskou aplikací.
Zvláštnosti:
BASIC | Dialekty programovacího jazyka|
---|---|
Klasický |
|
přechodný |
|
procesní |
|
Objekt |
|
mobilní, pohybliví |
|
Řídicí panel |
|
Programovací jazyky | |
---|---|
|