Visual Basic | |
---|---|
Nyelvóra | Eljárási , objektum orientált , komponens orientált , esemény orientált |
A végrehajtás típusa | Összeállította , értelmezte |
Megjelent | 1991 |
Fejlesztő | Microsoft |
Fájlkiterjesztés _ | .bas, .cls, .frm, .vbp, .vbg |
Kiadás | Visual Basic 6.0 (1998 ) |
Típusrendszer | Statikus gépelés , Erős gépelés , Dinamikus gépelés |
Főbb megvalósítások | Microsoft Visual Studio |
Dialektusok | Visual Basic alkalmazásokhoz , Visual Basic Script |
Befolyásolva | QuickBasic , BASIC |
befolyásolta | Visual Basic .NET , REALbasic , Gambas , Xojo , Basic4ppc |
Weboldal | msdn.microsoft.com/ru-RU/vstudio/ms788229.aspx |
Médiafájlok a Wikimedia Commons oldalon |
A Microsoft Visual Basic a Microsoft Corporation által kifejlesztett programozási nyelv és integrált szoftverfejlesztő környezet . A Visual Basic nyelv örökölte ősének, a sok nyelvjárással rendelkező BASIC nyelv szellemét, stílusát és részben szintaxisát. Ugyanakkor a Visual Basic egyesíti az objektumorientált és komponens-orientált programozási nyelvek eljárásait és elemeit . A VB IDE tartalmaz eszközöket a vizuális felhasználói felület tervezéséhez, kódszerkesztőt IntelliSense -sel és szintaktikai kiemeléssel, valamint eszközöket az alkalmazások hibakereséséhez.
A Visual Basic jó eszköz az adatbázis-alkalmazások gyors fejlesztéséhez (RAD) a Microsoft Windows család operációs rendszereihez . A környezettel együtt szállított számos kész komponens célja, hogy segítse a programozót egy üzleti alkalmazás üzleti logikájának azonnali fejlesztésében, anélkül, hogy a figyelmét a program indításához szükséges kód írására, az eseményekre való feliratkozásra és más, a VB által automatikusan megvalósított mechanizmusokra terelné.
A Visual Basic-et a komoly fejlesztők először a 3-as verzió megjelenése után ismerték fel. A végső elismerést a Windows teljes értékű programozási eszközeként az 5-ös verzió megjelenése jelentette. A Microsoft Visual Studio 6.0 részét képező VB6-os verzió valóban kiforrott és funkciókban gazdag termék.
Kiadási dátum | Változat | Leírás |
---|---|---|
1991. május | 1.0 | Visual Basic 1.0 Microsoft Windows rendszerhez . A QBasic szintaxist vették a nyelv alapjául , és az újítás, amely aztán nagy népszerűséget hozott a nyelvnek, a nyelv és a grafikus felület közötti kommunikáció elve volt. Ezt az elvet Alan Cooper ( Alan Cooper ) fejlesztette ki, és a háromlábú ( Ruby néven is ismert ) prototípusban valósította meg . |
1992. szeptember | 1.0 | Visual Basic 1.0 DOS alatt . Nem volt teljesen kompatibilis a VB Windows verziójával, mivel ez volt a QuickBASIC következő verziója, és képernyőszöveg módban futott. Érdekes megjegyezni, hogy a csomag tartalmazott egy speciális segédprogramot, amely ennek a verziónak a projektjeit Visual Basic 1.0-s Windows-projektekké alakította át. A kódot a lehető legkompatibilisebbé tette a Windows-verzióval, átalakította az űrlapokat (bár az eredmény nem volt kielégítő a szöveges és grafikus mód eltérései miatt), és megjegyzéseket is tett a kódba a további fejlesztés érdekében. |
1992. november | 2.0 | Visual Basic 2.0. A fejlesztői környezet könnyebben használható és gyorsabban működött. A Tulajdonságok ablak egy külön listába került. Forráskód kiemelés hozzáadva . |
1993 | 3.0 | A Visual Basic 3.0 Standard és Professional kiadásban jelent meg. Ezenkívül egy Access-adatbázisokkal való munkavégző motorral bővült a csomag . |
1995. augusztus | 4.0 | A Visual Basic 4.0 olyan verzió volt, amely 32 bites és 16 bites Windows alkalmazásokat is tudott létrehozni. Ezenkívül lehetővé vált VB-ben osztályok írása, és a Visual Basic végre teljes értékű fordító lett , ami jelentősen megnövelte a program végrehajtásának sebességét. Az OLE -vezérlők (OCX) támogatása hozzáadva a régi VBX -vezérlők helyére |
1997. február | 5.0 | Visual Basic 5.0 – ettől a verziótól kezdve lehetővé vált a hagyományos alkalmazások mellett saját COM-összetevők fejlesztése is . Egy ilyen komponens OCX fájlba fordításával és kézbesítésével lehetővé vált, hogy a vezérlőobjektumot ne csak a végfelhasználó , hanem más fejlesztők is megkaphassák, ami után integrálni tudták ezt az objektumot az alkalmazásaikba. Az integrált környezet P-Code és Native fordítókat tartalmaz. Az alkalmazásokat az MSVBVM50.DLL dinamikus könyvtárban megvalósított új virtuális gép hajtja végre. Szintén az idei év első negyedévében a Microsoft kiad egy terméket a Visual Basic 5 Control Creation Edition (VB5CCE) speciális kiadásában, amely kizárólag az ActiveX - vezérlők tervezésére specializálódott. |
1998 közepe | 6.0 | Visual Basic 6.0 – Optimalizált virtuális gép működése, és átkerült az MSVBVM60.dll fájlba. Továbbfejlesztett natív fordítói teljesítmény. Új funkciók hozzáadva a karakterláncokkal és tömbökkel való munkavégzéshez. A nyelvnek ez a verziója a legújabb a klasszikus VB sorában. A Microsoft megváltoztatta a Basic család nyelvi szabályzatát, és a Visual Basic fejlesztése helyett egy teljesen új nyelvet, a Visual Basic .NET -et hoztak létre . |
2002 | 7.0 | A Visual Basic .NET első kiadása . A legfontosabb szolgáltatás az, hogy a kódot teljes mértékben a .NET-keretrendszer Common Language Runtime kezeli . Megszakadt visszafelé kompatibilitás a klasszikus Visual Basic-cal (lefagyva VB6-ként). |
2003. április | 7.1 | A Microsoft frissítette a Visual Basic .NET-et, optimalizálta a fordítót. Megjelent a .NET Framework 1.1 frissített verziójával. |
2005 | 8.0 | A Visual Studio 2005 tartalmazza . .NET Framework 2.0 szükséges. A Visual Basic .NET 2003 kiadása után a Microsoft kihagyta a „.NET” előtagot a termék nevéből, és a következő verzió neve Visual Basic 2005. |
2008 | 9.0 | A Visual Studio 2008 része . .NET Framework 3.5 szükséges |
2010 | 10.0 | A Visual Studio 2010 része . .NET Framework 4 szükséges |
2012 | 11.0 | A Visual Studio 2012 része . .NET Framework 4.5 szükséges |
2013 | 12.0 | A Visual Studio 2013 része . .NET Framework 4.5.1 szükséges |
2015 | 14.0 (nem jelent meg 13.0-s verzióként) | A Visual Studio 2015 része . A .NET-keretrendszer frissítve a 4.6-os verzióra |
2017 | 15.0 | A Visual Studio 2017 része . |
A Visual Basic 6.0-s verziójának megjelenése után a Microsoft fejlesztői jelentősen megváltoztatták a technológia fejlesztési irányát. A Visual Basic .NET nem teszi lehetővé a régi módon történő programozást, mert valójában ez egy teljesen más nyelv, ugyanaz, mint bármely más .NET platform programozási nyelve . A nyelv egyénisége, valamint előnyei (egyszerűség, programkészítés gyorsasága, kész komponensek könnyű kezelhetősége) .NET környezetben használva már nem olyan fontosak, mint korábban – minden a képességekre összpontosul. magának a .NET platformnak az osztálykönyvtáraiban. Jelenleg (2015 júniusában) a Visual Basic-ről kell beszélnünk, csakúgy, mint a nyelv klasszikus 4.0-6.0 változatairól, dialektusairól: Visual Basic for Applications (VBA) és Visual Basic Scripting Edition (VBScript), valamint a nyelvről. a .NET platform – Visual Basic .NET
2020 márciusában a Microsoft kijelentette, hogy támogatja a Visual Basic-et a .NET 5.0 Unified Platformban, de többé nem ad hozzá új funkciókat és nem fejleszti a nyelvet [1] [2] .
A Visual Basic változóit egy operátor deklarálja Dim, amelyet a név, majd a kulcsszó, Asmajd a változó típusa követ. Ha a típust kihagyjuk, akkor a kulcsszó Asnincs megadva, és a változó Variantként lesz deklarálva. Ha nem ad meg konstrukciót Option Explicita deklarációs részben, akkor nincs szükség a változók kifejezett deklarálására, és azok automatikusan létrejönnek az első használatkor. Ez a viselkedés a programvégrehajtás sebességének csökkenéséhez vezethet, mivel a nem deklarált változók Variant típusúak lesznek, valamint logikai hibákat okozhat, amelyek egy meglévő változó nevének helytelen bevitelével járnak, vagy az alkalmazás ütközésének kockázatához vezethet, amikor a hatókör a változó nem teljesen világos.
Dim strMessage As String 'karakteres típusú változó deklarációja Dim iProductCount As Integer 'egész típusú változó deklarációja Dim dt70YearsOfVictory As Date 'változó deklarációja dátum és idő tárolására Dim otherValue ' típus nincs megadva, a típusú változó Public Sub Main () strMessage = "Hello World!" iProductCount = 125 dt70YearsOfVictory = # 5 / 9 / 2015 14:00:00 PM # ' dátum 2015. május 9. 14:00:00 otherValue = 12,5 ' változó típusa Változat, altípus Double. otherValue = "Wikipedia" ' változótípus Változat, String altípus. vége alVisual Basic 6.0 alaptípusok táblázata
Név | Típusméret | Adattípus Leírás |
---|---|---|
bájtok | 1 bájt | Byte. 0 és 255 közötti egész számok tárolására tervezték. Ha egy ilyen típusú változóhoz olyan érték van hozzárendelve, amely meghaladja ezeket a határokat, akkor a Visual Basic futásidejű hibát generál. |
Egész szám | 2 bájt | Egész. A – 32 768 és 32 767 közötti egész számok tárolására tervezték . Utótag a "%" típusjelöléshez. |
Hosszú | 4 bájt | hosszú egész szám. A – 2 147 483 648 és 2 147 483 647 közötti egész számok tárolására tervezték . Utótag az "&" típusjelöléshez. |
Egyetlen | 4 bájt | Egyetlen pontosságú lebegőpontos. Tartomány - 3,402823E38 - 1,401298E-45 negatív értékek esetén; 1,401298E –45 – 3,402823E38 pozitív értékek esetén. A típusmegjelölés utótagja "!" |
Kettős | 8 bájt | Dupla pontosságú lebegőpontos. Az ilyen típusú változók legfeljebb 16 számjegyből és legfeljebb 300 karakterből álló számok tárolását teszik lehetővé. Az értéktartomány -1,80E+308 és 1,80E+308 között változik. Az utótag "#". A számítások hozzávetőlegesek, mivel a szám bináris ábrázolását az IEEE 754 szabvány szerint használjuk . |
Decimális | 16 bájt | Méretezett egész szám. Ez a típus a számok decimális ábrázolását használja. A számítások vele, valamint a Pénznem típussal pontosak. Az értéktartomány -7,92E+28 és 7,92E+28 között van. Decimális típusú változót nem lehet közvetlenül deklarálni. Csak egy Variant altípusaként használható, és egy változót a cast függvény segítségével lehet átadni erre a típusra CDec. |
Boolean | 2 bájt | A logikai adattípus csak két értéket tárolhat: igaz vagy hamis, igaz vagy hamis. A VB valódi értéke egy -1 egész számnak felel meg, a hamis érték pedig 0, és implicit típusú öntéssel a nullától eltérő bármely számérték igaznak minősül. Ez a viselkedés lehetővé teszi a AND, OR, NOT, logikai operátorok használatát XORnem csak a Boole-algebrához, hanem bitenkénti műveletekhez is. [3] |
Húr | 10 + 2*N bájt | Változó hosszúságú karakterlánc. A karakterlánc (karakter) információ tárolására tervezték. Maga a karakterlánc Unicode kódolásban van tárolva , így minden karakter 2 bájttal van kódolva. Ha belülről nézzük a típust, akkor további 4 bájt a karakterláncra mutató mutató tárolására szolgál, 4 bájt a karakterlánc méretére, és maga a string null karakterekkel záródik (további 2 bájt). Így a maximális sorméret akár 2 GB is lehet. Utótag, mint a "$". |
String*N | 2*N bájt | Állandó hosszúságú karakterlánc. A String típushoz hasonlóan karakteres adatokat tárol, kivéve, hogy az adatok mérete rögzített, és a változó deklarálásakor kerül megadásra. Ha a karakterlánc értéke túl nagy, akkor a rendszer a kívánt méretre csonkolja. Ha a karakterlánc kisebb a szükségesnél, akkor szóköz hozzáadásával kiegyenlíti a méretet. Meg kell jegyezni, hogy a rögzített karakterláncok és tömbök, valamint a struktúrák nem lehetnek nagyobbak 64 kb-nál. |
Dátum | 8 bájt | Az adattípus lehetővé teszi az idő- és dátumértékek tárolását 100. január 1. éjfél és 9999. december 31. éjfél között. Ha egy változóhoz csak dátumérték van hozzárendelve, akkor az idő 00:00. Egy egész szám egy napot jelent. Ez lehetővé teszi a dátumok hozzáadását és kivonását csak matematikai operátorok használatával, de a VB speciális dátumfüggvényeket biztosít erre. |
Tárgy | 4 bájt | Egy objektumra való hivatkozás tárolására szolgál. Ehhez a típushoz a változóhoz való hozzárendelés a Set. Maga a típus az IDispatch-hez analóg, az IDispatch interfészre való hivatkozást tárolja. Minden objektumhoz az IUnknown-t kell használnia. |
Valuta | 8 bájt | Pénzügyi. Ez a típus legfeljebb 4 számjegyből állhat a tizedesvessző után, és legfeljebb 14 számjegyből állhat előtte. Az értékek tizedes számok, nem binárisak, mint az egyszeres és dupla pontosságú lebegőpontos típusok esetében. Így a számítások pontosak lesznek. Az értéktartomány -922337203685477,6000 és 922337203685477,6000 között van . Ezt a típust preferálják pénzügyi számításokhoz. "@" utótag |
Változat | 16 bájt / 22 bájt + N bájt / N bájt | A Variant típusú változó bármilyen típusú adatot tartalmazhat, beleértve az objektumhivatkozásokat, a felhasználó által definiált típusokat és a tömböket. A Visual Basic automatikusan elvégzi a szükséges adatátalakításokat . Egy számot tartalmazó altípushoz 16 bájt memóriára van szükség, a karakterlánc adatok tárolására pedig 22 bájt + magának a karakterláncnak a hossza. Az értéktartomány megegyezik az altípus értéktartományával. Ez a típus a leglassabb a végrehajtási sebesség szempontjából, mivel időbe telik az értékek ki- és becsomagolása. |
A Visual Basic nyelv számos operátort tartalmaz, amelyek az aritmetikai műveletekért, az összehasonlítási és hozzárendelési műveletekért, valamint az összefűzésért felelősek .
hozzárendelés operátor
A C-ben megvalósított többszörös hozzárendelés nem lehetséges. A = B = Cnem azt jelenti, hogy A, Bés Cazonos értékei lesznek. A VB kiértékeli a kifejezést , és az eredményt a , vagy , 0 vagy -1 B = Cváltozóhoz rendeli , a típustól függően. ATrueFalse
Aritmetikai operátorok
Összehasonlító operátorok
Logikai operátorok
Összefűzési operátorok
A Visual Basicben, mint sok programozási nyelvben, vannak olyan konstrukciók, amelyek szabályozzák a műveletek végrehajtásának sorrendjét. Egyes konstrukciók, például GoSubés Return, megmaradnak a BASIC nyelv korábbi verzióival való kompatibilitás érdekében, de a különálló eljárásokként történő megvalósítás strukturáltabb kódot biztosíthat.
FiókkezelőÁltalános szintaxis:
'Írjon egy elágazási utasítást egy sorban If < feltétel > Akkor [ action_when_condition_is_true ] 'Ez a bejegyzés lehetővé teszi, hogy a feltétel igazságától függő műveleteket hajtson végre If < feltétel > Akkor [ action_when_condition_is true ] Else [ action_when_condition_false ] 'Írjon többsoros elágazási utasítást If < feltétel > Then [ action_when_condition_is true ] ElseIf < feltétel2 > Then [ action_when_condition2_true ] ElseIf < feltételN > Then [ action_when_conditionN_true ] Else [ action_when_condition_false ] End If Kiválasztás operátorÁltalános szintaxis:
Válassza a Case < value_tested > 'Egy vagy több feltétel alapján tesztelendő változó vagy kifejezés Case < value_1 > 'A művelet akkor kerül végrehajtásra, ha a tesztelt érték megegyezik az 1 -es értékkel [ action_1 ] Case < value_2 > , < value_3 > , < value_3 > 'Tesztek értékek listája. Ha talál egyezést, akkor a [ action_2 ] művelet végrehajtásra kerül . Case < value_5 > To < value_6 > 'Ellenőrzi az értéktartományt [ action_3 ] Case Is >= < value_7 > 'Ellenőrzi az igazság értékét a következő feltétellel action_4 ] Else eset ' A művelet akkor kerül végrehajtásra, ha egyik feltétel sem teljesíti a feltételt [ action_5 ] VégkiválasztásPélda: különböző üzenetek megjelenítése egy változó értékétől függően
'Írjunk be egy változót, és adjunk neki értéket kézzel Dim X As Double X = InputBox ( "Adja meg az X változó numerikus értékét" ) Válassza az X esetet 'Ellenőrizze, hogy az értékünk illeszkedik-e valamilyen képzeletbeli függvényhez Case Is < 5 , Is >= 20 , 12 to 15 'Érvényes értékek tartománya MsgBox "Valamely függvény érvényes értéke" Más eset "Érvénytelen értékek MsgBox " Az érték bizonyos funkciókban nem használható" Végkiválasztás Hurok számlálóvalÁltalános szintaxis:
For < variable > = < value > To < end_value > [ Step < step_value >] [ utasításblokk ] [ Exit For ] 'Kilépés a ciklusból Következő [ változó ]Példa: páros számok összegének kiszámítása 1-től 100-ig
Ha I = 0–100 2. lépés Összeg = Összeg + I Következő _ _ Közös ciklusÁltalános szintaxis:
Minden < változóhoz > In < gyűjtemény > [ utasítás_blokk ] [ Exit For ] 'Kényszerített kilépési ciklus Következő [ változó ]Példa: Egy tömb minden elemét megjeleníti
Dim strItem As Variant A tömb minden egyes eleméhez ( "Alma" , "Körte" , "Szilva" ) StrItem nyomtatása Következő Feltételes hurokÁltalános szintaxis:
Do While < feltétel > 'A ciklus akkor fut le, ha a feltétel igaz [ utasítás_blokk ] [ Kilépés Do ] 'Kényszer kilépés a ciklusból Do Until < feltétel > 'A ciklus akkor fut le, ha a feltétel hamis [ utasítás_blokk ] [ Kilépés Do ] Cikk Míg < feltétel > 'A ciklus akkor kerül végrehajtásra, ha a feltétel igaz [ utasítás_blokk ] WendPélda: Szöveges fájl olvasása soronként
Nyissa meg a "file.txt" fájlt # 1 bevitelhez Do While Not EOF ( 1 ) ' Igaz értéke, ha a fájl vége várható. Sor Bemenet # 1 , strBuffer 'Sor beolvasása a Debug változóba . Nyomtatás strBuffer 'Kimenet a hibakereső ablakba Loop Close # 1 Hurok utófeltétellelÁltalános szintaxis:
Do [ utasítás_blokk ] [ Exit Do ] Loop While < feltétel > Do [ utasításblokk ] [ Exit Do ] Loop Until < feltétel > _A szubrutinok a nyelv egyik alapeleme. Ezek eljárások és funkciók.
A Visual Basic valójában a Windows üzenethurkot valósítja meg. Az űrlappéldában a ciklus szűri az üzenetet WM_MOUSEMOVE, és automatikusan meghívja az eljárást Form_MouseMovea paraméterekkel: melyik egérgombot nyomták meg, mutató koordinátái. Ez a mechanizmus elrejti a Windows-környezet programozásának bizonyos aspektusait a fejlesztő elől, lehetővé téve számára, hogy azonnal elkezdhesse a kereskedelmi kód írását. A legtöbb esetben a megoldandó feladatok osztálya nem követeli meg a programozótól, hogy ismerje az üzeneteket és az ablakfunkciókat. A Visual Basic azonban nem korlátozza a programozót az ablaküzenetek kezelésében. Ez nagyon rugalmas megközelítést tesz lehetővé az alkalmazások létrehozásához, de kellő tapasztalatot is igényel egy ilyen kód megírása, ami miatt a program instabilan futhat akár összeomlásig.
Példa egy függvényre másodfokú egyenlet megoldására:
Privát al - fő () Dim RetX1 As Double , RetX2 As Double Dim StrStatus As String strStatus = SolveQuadraticEquation ( 4 , 6 , 2 , RetX1 , RetX2 ) ' Oldja meg a 4*X^2 + 6*X - 2 = 0 egyenletet 'Válasz megjelenítése MsgBox "Felbontás: " & strStatus & vbCrLf & _ "X1 = " & RetX1 & vbCrLf & _ "X2 = " & RetX2 , vbInformation End Sub ' Quadratic Equation Solve Function Public Function SolveQuadraticEquation ( ByVal A As Double , _ ByVal B As Double , _ ByVal C As Double , _ ByVal C As Double , _ ByRef X1 As Double , _ ByRef X2 As Double ) As String Dim D As Dupla D = ( B * B ) ) - ( 4 * A * C ) 'Keresse ki a diszkrimináns értékét Ha D >= 0 , akkor X1 = ( - B - Sqr ( D )) / ( 2 * A ) ' Számítsa ki az X2 = ( - B + Sqr ( D )) / ( 2 * A ) egyenlet gyökereit ! SolveQuadraticEquation = "Megoldás található" 'A függvény üzenetet ad vissza a megoldásról . Else SolveQuadraticEquation = "Diskrimináns < 0. Nincs gyökér" End If End függvényEbben a példában a módosítót láthatja a , és ByValargumentumok előtt . Ez biztosítja, hogy a függvény paraméterei érték szerint kerüljenek átadásra . A módosító viszont hivatkozással adja át az értéket . Az ilyen típusú módosítóknál a függvény módosíthatja a paraméterként átadott változók értékeit. A Visual Basic alapértelmezés szerint mindig referenciaként adja át az értékeket, ha egyik módosító sincs megadva. ABCByRef
A Visual Basic programkódja modulokban van tárolva. Csak háromféle modul létezik: űrlapmodul (Form), szabványos modul (Module) és osztálymodul (Class Module).
Az objektumok közötti egyszerű interakció a Visual Basic paradigma egyik alapvető összetevője. Magát az objektumot az osztály példányának nevezzük . A VB objektummodell különféle osztályokat biztosít az űrlapokkal, vezérlőkkel, vágólappal, gyűjteményekkel, képernyővel stb. való munkavégzéshez. Más objektumokkal való interakcióhoz az osztály egy tulajdonságokból , metódusokból és eseményekből álló felületet biztosít a fejlesztőnek .
Új objektum létrehozása egy osztályból lehetséges korai vagy késői kötéssel. Korai kötéshez a kulcsszót Newaz osztálynév előtt használjuk. Késői kötéshez egy függvényt használnak CreateObject, amely a létrehozott objektumra való hivatkozást adja vissza. A hivatkozások a típusú változókhoz Objectaz operátor használatával rendelhetők Set. Az osztály metódusaihoz és tulajdonságaihoz a pont operátoron keresztül lehet hozzáférni ., amely közvetlenül az objektumtípus változóneve után kerül elhelyezésre. Ha az osztály eseményeket tartalmaz, akkor a változókat a kulcsszóval deklaráljuk WithEvents, így elérhetőek lesznek az eseménykezelési eljárások.
A példa bemutatja, hogy a program hogyan működik együtt a Microsoft Scripting Runtime könyvtárral , amely objektumokat biztosít a fájlrendszerrel való munkához:
Nyilvános al - fő () Dim objFSO mint új fájlrendszerobjektum 'Hozzon létre egy példányt az osztályból a New Dim objWindows As Folder utasítással Állítsa be : objWindows = objFSO . GetFolder ( Environ ( "SYSTEMROOT" )) 'Hívja meg a GetFolder osztály metódusát, és rendeljen hivatkozást a kapott objektumhoz MsgBox "Windows Folder:" & objWindows . Elérési út 'Olvassa be az MsgBox osztály tulajdonságait "Létrehozás dátuma:" & Formátum ( objWindows . DateCreated , "ÉÉÉÉ-HH-NN H:mm:ss" ) Dim sTextFilePath As String Dim objTS As TextStream sTextFilePath = objFSO . BuildPath ( Environ ( "TEMP" ), "Test file.txt" ) 'A két paraméteres metódus egy String típusú értéket ad vissza Állítsa be : objTS = objFSO . CreateTextFile ( sTextFilePath , True ) objTS . Írd be, hogy "Helló Wikipédia!" objTS . Bezárás objFSO . DeleteFile sTextFilePath , igaz Set objFSO = Semmi 'A Nothing hozzárendelése felszabadítja a hivatkozást, és az objektum meghívhatja a destruktor eljárást Set objWindows = Semmi 'A VB automatikusan meghívja a destruktort, ha az objektum már nem hivatkozik Set objTS = Nothing End SubA Visual Basic lehetővé teszi a fejlesztő számára, hogy maga hozzon létre új osztályokat. Más programozási nyelvekkel ellentétben, mint például a Java és a C++, a Visual Basic nem támogatja teljes mértékben az OOP-t.
Mint tudják, egy absztrakt osztályra van szükség ahhoz, hogy sablont biztosítsunk más osztályok interfészéhez. A Visual Basicben azok az osztályok, amelyeknek vannak osztálytagjai, de nincs implementációja, használhatók absztrakt osztályokként, de valójában nem azok. Mindig létrehozhat objektumokat Visual Basic osztályokból, még akkor is, ha nem tartalmaznak kódot [4]
A beágyazás elve a Visual Basicben működik. Az osztálytagokhoz való hozzáférés elhatárolásához a és módosítókat eljárások Public, függvények, konstansok, változók Privateés Friendfelhasználó által definiált típusok leírására használják.
A megvalósítási öröklés nem támogatott. A Visual Basic csak a felületen keresztül támogatja az interfész öröklésétImplements. Interfész öröklésekor bármely osztály működhet az interfész alaposztályaként. Általában bármely osztály működhet egy interfész alaposztályaként.
A polimorfizmust csak interfészeken keresztül kényszerítik ki, mivel a VB nem támogatja az öröklődést. A polimorfizmus megvalósítását a Transport osztály interfészét megvalósító Autó és Repülőgép osztályok példáján mutatjuk be.
'Class ITransport.cls nyilvános funkció GetMaxSpeed ( ) mint hosszú végű funkció 'Class CAuto.cls megvalósítja az ITransport 'Inherit interfészt Privát funkció ITransport_GetMaxSpeed () As Long 'Módszer megvalósítása ITransport_GetMaxSpeed = 240 végfunkció 'Class CFly.cls megvalósítja az ITransportot Privát funkció ITransport_GetMaxSpeed ( ) Amíg ITransport_GetMaxSpeed = 700 végfunkció _ 'Standard modul Program.bas Opció Explicit Public Sub Main () Dim T As ITransport 'ITransport típusú változó deklarálása T beállítása = Új cAuto WhatTransportSpeed T 'A hivatkozást egy olyan eljárásra adjuk át, amely meghívja a kívánt osztálymetódust, a megvalósítástól függően T készlet = Új cFly WhatTransportSpeed T End Sub "A függvénynek van egy argumentuma, amely az ITransport felületet megvalósító objektumra hivatkozik. Public Sub WhatTransportSpeed ( Transport As ITransport ) MsgBox "Maximális sebesség: " & Transport . GetMaxSpeed () End SubA kódszerkesztő egy szövegszerkesztő, amely további funkciókkal rendelkezik a forráskód egyszerű és gyors beviteléhez:
Az integrált fejlesztői környezet gazdag lehetőségeket biztosít a programozó számára a programok hibakeresésére. A Visual Basic egyik előnye, hogy a program forráskódját nagymértékben megváltoztathatjuk anélkül, hogy teljesen újrafordítanák és újraindítanák. A hibakeresési eljárások során a fejlesztőnek lehetősége van az éppen végrehajtott utasítást jelző markert mozgatni, előre - a kód egy részének kihagyásával és visszafelé -, ami arra kényszeríti a VB-t, hogy a már feldolgozott utasításokat újra végrehajtsa.
A környezet többek között olyan hibakereső eszközöket biztosít, mint az azonnali ablak, a helyiek ablak, a figyelőablak és a Call Stack Viewer . Az ilyen fejlett eszközök lehetővé teszik a programozó számára a vizsgált algoritmus mélyreható elemzését a hibakeresés alatt álló alkalmazásban.
A Visual Basic hibakeresési módba lép, ha az alábbi feltételek egyike teljesül:
Az integrált fejlesztői környezethez tartozik egy P-kód (P-kód) fordító , egy natív Back-End x86-kompatibilis fordító és egy linker (linker). A két fordító jelenléte lehetővé teszi a Visual Basic hozzárendelését mind egy fordított, mind egy értelmezett nyelvhez. Függetlenül attól, hogy melyik fordítót választjuk, az alkalmazások futtatásához a Visual Basic futásidejű virtuális gépre van szükség, amely az MSVBVMXX.DLL könyvtár, ahol az XX a nyelvi verzió [5]
A Microsoft Visual Basic 6.0 tartalmazza a Package & Deployment Wizard [6] varázslót , amellyel Visual Basic projekteken alapuló telepítőcsomagokat hozhat létre. A jól ismert elődjéhez, a Setup Wizardhoz képest a P&D Wizard új funkciókat kínál, de sajnos az új eszköz tartalmaz néhány hibát. Ennek az alkalmazásnak az egyik problémája a dátum-konverziós hiba, ha a felhasználó operációs rendszerében beállított területi beállítás eltér az amerikaitól. Vannak harmadik féltől származó alkalmazások, amelyek fejlettebb eszközöket biztosítanak a telepítőcsomagok kezeléséhez.
A VB-alkalmazások egyszerű másolással is telepíthetők, amely néhány lépésből áll:
A VB 5.0-s verziótól kezdődően a fejlesztőnek lehetősége van nemcsak kész ActiveX -komponensek használatára , hanem saját létrehozására is. A VB gondoskodik a segédkódok létrehozásának minden munkájáról, amelynek célja az összetevő információinak rögzítése a rendszerleíró adatbázisban, az IDispatch interfész megvalósítása, az osztályok (CLSID), interfészek (IID) és típuskönyvtárak azonosítójaként használt egyedi GUID létrehozása ( LIBID) . Ennek a megközelítésnek köszönhetően a programozónak csak a szükséges funkciókkal rendelkező osztályokat kell létrehoznia.
Az új osztály- és interfész GUID-ok létrehozása a projekttulajdonságok lapon beállított kompatibilitási beállítástól függ. Három állapot egyikét veheti fel:
A fordítás befejezése után a kimenet egy bináris könyvtárfájl lesz a COM specifikációnak megfelelően . Ez az összetevő legalább 2 interfészt valósít meg : IUnknown és IDispatch. A típuskönyvtár ( TLB ) a végrehajtható fájl erőforrásaiba lesz integrálva. Ezenkívül hasznos információkat tartalmazó fájlok, például EXP és LIB jönnek létre.
A Visual Basic nyelvi lehetőségeket biztosít a dinamikus hivatkozási könyvtárakból (DLL-ekből) származó függvények deklarálásához és meghívásához. Ez a mechanizmus lehetővé teszi az alkalmazások bővítését más fejlesztők által biztosított további könyvtárak használatával, beleértve a különböző programozási nyelveken írottakat is. Az egyik ilyen könyvtárkészletet a Microsoft Windows operációs rendszer biztosítja.
A függvény- és eljárásdeklaráció általános szintaxisa a következő:
[ Nyilvános | Privát ] Sub < eljárásnév > lib "dinamikus_könyvtárnév" deklarálása [ Alias " alias" ] [ ( paraméterek ) ] [ Nyilvános | Privát ] Funkció deklarálása < függvény_neve > lib "dinamikus_könyvtárnév" [ Alias "alias " ] [ ( paraméterek ) ] [ visszatérési_típusként ]Az álneveket számos esetben meg kell adni: Visual Basic fenntartott azonosítók használata a függvény nevében, a név érvénytelen karaktereket tartalmaz, vagy a környezet nem tudja megfelelően értelmezni. A meghívott függvényeknek támogatniuk kell az StdCall hívási konvenciót .
Amikor egy String típusú paramétert ad át a WINAPI függvénynek, a VB automatikusan átalakítja a kódolást Unicode -ról ANSI-ra, a funkció végrehajtása után megtörténik a fordított átalakítás ANSI-ról Unicode-ra. Az automatikus karakterlánc-konverzió elkerülése érdekében a függvény argumentumait Long-ként kell deklarálni, és a függvény segítségével egy karakterláncra mutató mutatót kell átadni StrPtr, így optimalizálható a több függvényhívást végző alkalmazás teljesítménye.
Példa a Windows API meghívására, hogy megkapja a Windows könyvtár teljes elérési útját és egy üzenetet jelenítsen meg a képernyőn:
Függvény privát deklarálása GetWindowsDirectory Lib " kernel32.dll" Alias " GetWindowsDirectoryA " ( ByVal puffer mint String , ByVal nSize As Long ) A Long Private Declare függvény MessageBox Lib "user32.dll" Alias "MessageBox hoxA " ( ByVal , ByVal lpText As String , ByVal lpCaption As String , ByVal wType As Long ) Amíg _ Privát Const MB_ICONASTERISK Amíg = 64 _ Public Sub Main () Dim puffer As String 'Az a változó, amelybe a függvény eredménye érkezik. Dim ret Len As Long puffer = String ( 256 , vbNullChar ) lens = GetWindowsDirectory ( puffer , Len ( puffer )) 'Funkcióhívási puffer = Bal ( puffer , lencse ) MessageBox 0 & , "OS telepítve a könyvtárban: " & puffer , "Információ" , MB_ICONASTERISK ' Alfüggvényhívás végeMegjegyzendő, hogy a WINAPI függvények hívása bizonyos belső megállapodásokhoz kapcsolódik, nevezetesen azzal, hogy a függvény hogyan ad vissza eredményt, milyen struktúrákat kell átadnia, hány argumentumot és típusukat tartalmazzák a visszatérési érték. A fejlesztők az általuk használt könyvtárakhoz mellékelt műszaki dokumentációt használják a funkciók és struktúrák megfelelő deklarálásához.
A nyelv erősen kötődik fejlesztői környezetéhez és a Microsoft Windows operációs rendszerhez, mivel kizárólag Windows alkalmazások írásának eszköze. A környezethez való kötődés abban rejlik, hogy számos eszköz létezik a programozás segítésére és megkönnyítésére: beépített hibakereső, változók és adatstruktúrák menet közbeni megtekintése, hibakereső ablak, eszköztippek programíráskor ( IntelliSense ). Mindezek az előnyök haszontalanná, sőt lehetetlenné teszik a Visual Basic használatát a fejlesztői környezeten kívül, például egy normál szövegszerkesztőben.
Érdemes azonban megjegyezni, hogy a nyelv minden hiányossága a fő előnyéből - a grafikus felület fejlesztésének egyszerűségéből - ered. Ezért sok programozó a Visual Basic-et használja a felhasználói felület fejlesztéséhez, és a program funkcionalitása más nyelveken (például C++ ) írt dinamikus hivatkozási könyvtárakként ( DLL -ek) valósul meg .
Ez a fejlesztői környezet gyakorlatilag nem különbözik a klasszikus Visual Basic-től, amely makrók és egyéb alkalmazási programok írására szolgál konkrét üzleti alkalmazásokhoz. A Microsoft Office csomagban való használatának köszönhetően a legnagyobb népszerűségnek örvend . A Visual Basic for Applications széles körben elterjedt használata, párosulva azzal, hogy kezdetben nem figyeltek a biztonsági kérdésekre, széles körben elterjedt makróvírusokhoz vezetett .
Sajátosságok:
Szkriptnyelv , amely a szokásos Visual Basic kissé csonka változata. Elsősorban a Microsoft Windows rendszerek adminisztrációjának automatizálására , valamint ASP -oldalak és szkriptek létrehozására szolgál az Internet Explorer számára .
Sajátosságok:
Ez az eszköz a Windows CE és a Windows Mobile operációs rendszerek szoftverének fejlesztésére szolgál . Tartalmazza az IDE-t, a hibakeresőt és az emulátort az alkalmazások teszteléséhez. Az eMbedded Visual Basic nem a teljes értékű Visual Basic programozási nyelven, hanem a Visual Basic Scripting Edition szkriptnyelven alapul . Az alkalmazások P-kódba vannak fordítva, és a végrehajtható fájlok kiterjesztése VB, amelyek a gazdagép alkalmazáshoz vannak társítva.
Sajátosságok:
A BASIC programozási nyelv dialektusai | |
---|---|
Klasszikus |
|
átmeneti |
|
eljárási |
|
Tárgy |
|
Mobil |
|
Konzol |
|
Programozási nyelvek | |
---|---|
|