Visual Basic | |
---|---|
Clasa de limba | Procedural , Orientat pe obiecte , Orientat pe componente , Orientat pe evenimente |
Tipul de execuție | Compilat , interpretat |
Aparut in | 1991 |
Dezvoltator | Microsoft |
Extensie de fișier | .bas, .cls, .frm, .vbp, .vbg |
Eliberare | Visual Basic 6.0 (1998 ) |
Tip sistem | Tastare statică, tastare puternică , tastare dinamică |
Implementări majore | Microsoft Visual Studio |
Dialectele | Visual Basic pentru aplicații , Visual Basic Script |
A fost influențat | QuickBasic , BASIC |
influențat | Visual Basic .NET , REALbasic , Gambas , Xojo , Basic4ppc |
Site-ul web | msdn.microsoft.com/ru-RU/vstudio/ms788229.aspx |
Fișiere media la Wikimedia Commons |
Microsoft Visual Basic este un limbaj de programare și un mediu de dezvoltare software integrat dezvoltat de Microsoft Corporation . Limbajul Visual Basic a moștenit spiritul, stilul și parțial sintaxa strămoșului său, limba BASIC , care are multe dialecte. În același timp, Visual Basic combină proceduri și elemente ale limbajelor de programare orientate pe obiecte și orientate pe componente . VB IDE include instrumente pentru proiectarea interfeței vizuale cu utilizatorul, un editor de cod cu IntelliSense și evidențierea sintaxelor și instrumente pentru depanarea aplicațiilor.
Visual Basic este, de asemenea, un instrument bun pentru dezvoltarea rapidă (RAD) a aplicațiilor de baze de date pentru sistemele de operare din familia Microsoft Windows . Multe componente gata făcute furnizate împreună cu mediul sunt concepute pentru a ajuta programatorul să înceapă imediat să dezvolte logica de afaceri a unei aplicații de afaceri, fără a-și distra atenția către scrierea codului pentru lansarea programului, abonarea la evenimente și alte mecanisme pe care VB le implementează automat.
Visual Basic a fost recunoscut pentru prima dată de dezvoltatorii serioși după lansarea versiunii 3. Recunoașterea finală ca instrument de programare cu drepturi depline pentru Windows a venit odată cu lansarea versiunii 5. Versiunea VB6, care face parte din Microsoft Visual Studio 6.0, a devenit un produs cu adevărat matur și bogat în caracteristici.
Data de lansare | Versiune | Descriere |
---|---|---|
mai 1991 | 1.0 | Visual Basic 1.0 pentru Microsoft Windows . Sintaxa QBasic a fost luată ca bază a limbajului , iar inovația, care a adus apoi o mare popularitate limbajului, a fost principiul comunicării dintre limbaj și interfața grafică. Acest principiu a fost dezvoltat de Alan Cooper ( Alan Cooper ) și implementat în prototipul Trepied (cunoscut și sub numele de Ruby ) |
septembrie 1992 | 1.0 | Visual Basic 1.0 sub DOS . Nu era pe deplin compatibil cu versiunea Windows a VB, deoarece era următoarea versiune a QuickBASIC și rula în modul text pe ecran. Este interesant de observat că pachetul includea un utilitar special care a convertit proiectele acestei versiuni în proiecte Visual Basic 1.0 pentru Windows. Ea a făcut codul cât mai compatibil cu versiunea de Windows, a convertit formularele (deși rezultatul a fost nesatisfăcător din cauza diferențelor dintre modul text și grafic) și a oferit, de asemenea, comentarii în cod cu sugestii pentru îmbunătățiri suplimentare. |
noiembrie 1992 | 2.0 | Visual Basic 2.0. Mediul de dezvoltare a devenit mai ușor de utilizat și a funcționat mai rapid. Fereastra Proprietăți a fost mutată într-o listă separată. S-a adăugat evidențierea codului sursă . |
1993 | 3.0 | Visual Basic 3.0 a fost lansat în edițiile Standard și Professional. În plus, la pachet a fost adăugat un motor pentru lucrul cu bazele de date Access . |
august 1995 | 4.0 | Visual Basic 4.0 era o versiune care putea crea atât aplicații Windows pe 32 de biți, cât și pe 16 biți. În plus, a devenit posibil să scrieți clase în VB, iar Visual Basic a devenit în sfârșit un compilator cu drepturi depline , ceea ce a crescut semnificativ viteza de execuție a programului. S-a adăugat suport pentru comenzile OLE (OCX), înlocuind vechile controale VBX |
februarie 1997 | 5.0 | Visual Basic 5.0 - începând cu această versiune, a devenit posibil, împreună cu aplicațiile convenționale, să vă dezvoltați propriile componente COM . Compilând o astfel de componentă într-un fișier OCX și livrându-l, a fost posibil să ofere obiectul său de control nu numai utilizatorului final , ci și altor dezvoltatori, după care ar putea integra acest obiect în aplicațiile lor. Mediul integrat include compilatoare P-Code și Native . Aplicațiile sunt executate de o nouă mașină virtuală implementată în biblioteca dinamică MSVBVM50.DLL. Tot în primul trimestru al acestui an, Microsoft lansează un produs într-o ediție specială Visual Basic 5 Control Creation Edition (VB5CCE), care este specializată doar în proiectarea controalelor ActiveX . |
mijlocul anului 1998 | 6.0 | Visual Basic 6.0 - Funcționare optimizată a mașinii virtuale și mutat în MSVBVM60.dll. Performanță îmbunătățită a compilatorului nativ. S-au adăugat noi funcții pentru lucrul cu șiruri și matrice. Această versiune a limbii este cea mai recentă din linia VB clasică. Microsoft a schimbat politica lingvistică pentru familia Basic și, în loc să dezvolte Visual Basic, a fost creat un limbaj complet nou, Visual Basic .NET . |
2002 | 7.0 | Prima lansare a Visual Basic .NET . Cea mai importantă caracteristică este că codul este gestionat în totalitate de .NET Framework Common Language Runtime . Compatibilitate inversă întreruptă cu Visual Basic clasic (înghețat ca VB6). |
aprilie 2003 | 7.1 | Microsoft a actualizat Visual Basic .NET, a optimizat compilatorul. Lansat cu versiunea actualizată a .NET Framework 1.1. |
2005 | 8.0 | Inclus cu Visual Studio 2005 . Necesită .NET Framework 2.0. După lansarea Visual Basic .NET 2003, Microsoft a renunțat la prefixul „.NET” din numele produsului, iar următoarea versiune se numește Visual Basic 2005. |
2008 | 9,0 | Inclus cu Visual Studio 2008 . Necesită .NET Framework 3.5 |
2010 | 10.0 | Inclus cu Visual Studio 2010 . Necesită .NET Framework 4 |
2012 | 11.0 | Inclus cu Visual Studio 2012 . Necesită .NET Framework 4.5 |
2013 | 12.0 | Inclus cu Visual Studio 2013 . Necesită .NET Framework 4.5.1 |
2015 | 14.0 (nu este lansat ca 13.0) | Inclus cu Visual Studio 2015 . Actualizat .NET Framework la versiunea 4.6 |
2017 | 15.0 | Inclus cu Visual Studio 2017 . |
După lansarea versiunii Visual Basic 6.0, dezvoltatorii de la Microsoft au schimbat semnificativ direcția de dezvoltare a acestei tehnologii. Visual Basic .NET nu vă permite să programați în modul vechi, deoarece de fapt este un limbaj complet diferit, la fel ca orice alt limbaj de programare pentru platforma .NET . Individualitatea limbajului, precum și avantajele sale (simplitate, viteza de creare a programelor, ușurința de utilizare a componentelor gata făcute), atunci când sunt utilizate în mediul .NET, nu sunt la fel de importante ca înainte - totul este concentrat pe capacitățile a platformei .NET în sine, pe bibliotecile sale de clasă. În acest moment (iunie 2015), trebuie să vorbim despre Visual Basic, ca despre versiunile clasice ale limbajului 4.0 - 6.0, dialectele acestuia: Visual Basic for Applications (VBA) și Visual Basic Scripting Edition (VBScript) și limbajul pentru platforma .NET - Visual Basic .NET
În martie 2020, Microsoft a declarat că va sprijini Visual Basic în platforma unificată .NET 5.0, dar nu va mai adăuga funcții noi sau va mai evolua limbajul [1] [2] .
Variabilele în Visual Basic sunt declarate cu un operator Dim, urmat de nume, apoi de cuvântul cheie Asși apoi de tipul variabilei. Dacă tipul este omis, atunci cuvântul cheie Asnu este specificat și variabila este declarată ca Variant. Dacă nu specificați un construct Option Explicitîn secțiunea declarație, nu este necesară declararea explicită a variabilelor și acestea vor fi create automat la prima utilizare. Acest comportament poate duce la o scădere a vitezei de execuție a programului, deoarece variabilele nedeclarate vor fi de tip Variant, precum și erori logice asociate cu introducerea incorectă a numelui unei variabile existente sau riscul de conflicte în aplicație atunci când domeniul de aplicare a variabilei nu este complet clară.
Dim strMessage As String „declarația unei variabile de tip de caracter Dim iProductCount As Integer „declararea unei variabile de tip întreg Dim dt70YearsOfVictory As Date „declararea unei variabile pentru stocarea datei și orei Dim otherValue ” tip nespecificat, variabilă de tip Variant Public Sub Main () strMessage = "Bună lume!" iProductCount = 125 dt70YearsOfVictory = # 5 / 9 / 2015 2:00:00 PM # ' data 9 mai 2015 2:00:00 pm otherValue = 12,5 ' tip variabilă Variant, subtip Double. otherValue = "Wikipedia" ' tip variabilă Variant, subtip String. end subTabelul tipurilor de bază Visual Basic 6.0
Nume | Mărimea tipului | Descriere tip de date |
---|---|---|
octeți | 1 octet | octet. Proiectat pentru a stoca numere întregi de la 0 la 255. Dacă unei variabile de acest tip i se atribuie o valoare care depășește aceste limite, atunci Visual Basic va genera o eroare de rulare. |
Întreg | 2 octeți | Întreg. Proiectat pentru a stoca numere întregi în intervalul − 32 768 la 32 767 . Sufix pentru denumirea de tip „%”. |
Lung | 4 octeți | întreg lung. Proiectat pentru a stoca numere întregi în intervalul − 2 147 483 648 până la 2 147 483 647 . Sufix pentru denumirea de tip „&”. |
Singur | 4 octeți | virgulă mobilă de precizie unică. Interval - 3,402823E38 până la - 1,401298E−45 pentru valori negative; 1,401298E −45 până la 3,402823E38 pentru valori pozitive. Sufixul pentru denumirea tipului "!" |
Dubla | 8 octeți | virgulă mobilă de dublă precizie. Variabilele de acest tip vă permit să stocați numere de până la 16 cifre și până la 300 de caractere. Intervalul de valori variază de la -1,80E+308 la 1,80E+308. Sufixul este „#”. Calculele cu acesta sunt aproximative, deoarece reprezentarea binară a numărului este utilizată conform standardului IEEE 754 . |
Zecimal | 16 octeți | Număr întreg la scară. Acest tip folosește reprezentarea zecimală a numerelor. Calculele cu acesta, precum și cu tipul Monedă, sunt exacte. Intervalul de valori este de la -7,92E+28 la 7,92E+28. Nu puteți declara direct o variabilă de tip Decimal. Poate fi folosit doar ca subtip al unei variante, iar o variabilă poate fi turnată la acel tip utilizând funcția cast CDec. |
boolean | 2 octeți | Tipul de date boolean poate stoca doar două valori: adevărat sau fals, adevărat sau fals. O valoare adevărată în VB corespunde unui număr întreg −1, iar o valoare falsă este egală cu 0, iar cu turnarea tip implicită, orice valoare numerică, alta decât zero, este tratată ca adevărată. Acest comportament face posibilă utilizarea operatorilor logici AND, OR, NOT, XORnu numai pentru algebra booleană, ci și pentru operații pe biți. [3] |
Şir | 10 + 2*N octeți | Șir de lungime variabilă. Conceput pentru a stoca informații de tip șir (caracter). Șirul în sine este stocat în codificare Unicode , astfel încât fiecare caracter este codificat cu 2 octeți. Dacă te uiți la tipul din interior, atunci se folosesc 4 octeți suplimentari pentru a stoca un pointer către șir, 4 octeți pentru dimensiunea șirului, iar șirul în sine se termină cu caractere nule (alți 2 octeți). Astfel, dimensiunea maximă a rândului poate fi de până la 2 GB. Sufix ca „$”. |
String*N | 2*N octeți | Un șir de lungime constantă. La fel ca tipul String, acesta stochează date de caractere, cu excepția faptului că dimensiunea datelor este fixă și este specificată atunci când variabila este declarată. Dacă valoarea șirului este prea mare, atunci este trunchiată la dimensiunea necesară. Dacă șirul este mai mic decât este necesar, atunci dimensiunea este egalată prin adăugarea unui caracter spațiu. Trebuie remarcat faptul că șirurile și matricele fixe, precum și structurile, nu pot fi mai mari de 64 kb. |
Data | 8 octeți | Tipul de date vă permite să stocați valori de oră și dată între miezul nopții, 1 ianuarie 100 și miezul nopții, 31 decembrie 9999. Dacă unei variabile i se atribuie doar o valoare de dată, atunci ora este 00:00. O unitate întreagă reprezintă o zi. Acest lucru vă permite să adăugați și să scădeți date folosind doar operatori matematici, dar VB oferă funcții de dată specializate pentru a realiza acest lucru. |
Obiect | 4 octeți | Folosit pentru a stoca o referință la un obiect. Atribuirea unei variabile pentru acest tip se face folosind Set. Tipul în sine este analog cu IDispatch; stochează o referință la interfața IDispatch. Pentru orice obiect, trebuie să utilizați IUnknown. |
Valută | 8 octeți | Monetar. Acest tip poate avea până la 4 cifre după virgulă zecimală și până la 14 înaintea acesteia. Valorile sunt numere zecimale, nu binare, așa cum este cazul tipurilor cu virgulă mobilă cu precizie simplă și dublă. Astfel, calculele vor fi făcute cu exactitate. Intervalul de valori este de la −922337203685477,6000 la 922337203685477,6000 . Acest tip este preferat pentru calculele financiare. Sufix "@" |
Variantă | 16 bytes / 22 bytes+N bytes / N-bytes | O variabilă de tip Variant poate conține date de orice tip, inclusiv referințe la obiecte, tipuri definite de utilizator și matrice. Visual Basic realizează automat transformările de date necesare . Un subtip care conține un număr necesită 16 octeți de memorie, iar pentru stocarea datelor șir 22 octeți + lungimea șirului în sine. Intervalul de valori este egal cu intervalul de valori al subtipului. Acest tip este cel mai lent în ceea ce privește viteza de execuție, deoarece este nevoie de timp pentru a despacheta și a împacheta valori. |
Limbajul Visual Basic conține mulți operatori responsabili pentru operațiile aritmetice, operațiile de comparare și atribuire și concatenare .
operator de atribuire
Atribuirea multiplă, așa cum este implementată în C, nu este posibilă. A = B = Cnu înseamnă că Ași Bva Cavea valori egale. VB va evalua expresia și va atribui rezultatul B = Cvariabilei , sau , 0 sau -1, în funcție de tip. ATrueFalse
Operatori aritmetici
Operatori de comparație
Operatori logici
Operatori de concatenare
În Visual Basic, ca și în multe limbaje de programare, există constructe care controlează ordinea în care sunt efectuate acțiunile. Unele dintre constructe, cum ar fi GoSubși Return, sunt păstrate pentru compatibilitate cu versiunile anterioare ale limbajului BASIC, dar implementarea ca proceduri separate poate oferi cod mai structurat.
Operator de sucursalăSintaxa generala:
„Scrieți o instrucțiune de ramură într-o singură linie Dacă < condiție > Atunci [ acțiune_când_condiția_este_adevărată ] „Această intrare vă va permite să efectuați acțiuni în funcție de adevărul condiției Dacă < condiție > Atunci [ action_when_condition_is true ] Else [ action_when_condition_false ] „Scrieți o instrucțiune de ramură cu mai multe linii Dacă < condiție > Atunci [ acțiune_când_condiție_este adevărată ] ElseIf < condiție2 > Atunci [ acțiune_când_condiție2_adevărată ] ElseIf < condițieN > Atunci [ acțiune_când_condițieN_adevărat ] Else [ acțiune_când_condiție_falsă ] End If Operator de selecțieSintaxa generala:
Selectați Case < value_tested > „Variabilă sau expresie care trebuie testată în raport cu una sau mai multe condiții Case < value_1 > „Acțiunea este efectuată dacă valoarea testată se potrivește cu valoarea 1 [ action_1 ] Case < value_2 > , < value_3 > , < value_3 > „Teste lista de valori. Dacă se găsește o potrivire , atunci acțiunea [ acțiune_2 ] este executată . _ _ _ _ _ _ _ _ _ _ action_4 ] Caz Else „Acțiunea este efectuată dacă niciuna dintre condiții nu eșuează [ action_5 ] End SelectExemplu: afișarea diferitelor mesaje în funcție de valoarea unei variabile
„Să introducem o variabilă și să-i dăm o valoare manual Dim X As Double X = InputBox ( „Introduceți valoarea numerică a variabilei X” ) Selectați Case X „Verificați dacă valoarea noastră se potrivește cu o funcție imaginară Case Is < 5 , Is >= 20 , 12 To 15 "Game of valid values MsgBox "O valoare validă pentru o anumită funcție" Case Else "Invalid values MsgBox " Valoarea nu poate fi utilizată în anumite funcții" End Select Buclă cu contorSintaxa generala:
Pentru < variabilă > = < valoare > To < end_value > [ Step < step_value >] [ statement_block ] [ Exit For ] 'Exit loop Next [ variabilă ]Exemplu: calcularea sumei numerelor pare de la 1 la 100
Pentru I = 0 la 100 Pasul 2 Suma = Suma + I Următorul Ciclul comunSintaxa generala:
Pentru fiecare < variabilă > În < colecție > [ statement_block ] [ Exit For ] 'Forceți bucla de ieșire Următorul [ variabilă ]Exemplu: Afișează fiecare element dintr-o matrice
Dim strItem ca variantă Pentru fiecare strItem din matrice ( „ Apple” , „Pear” , „Plum” ) Imprimați strItem Următorul Buclă condiționatăSintaxa generala:
Do While < condiție > „Bucla este executată când condiția este adevărată [ statement_block ] [ Exit Do ] „Ieșire forțată din buclă Do Until < condiție > 'Bucla este executată când condiția este falsă [ statement_block ] [ Exit Do ] Buclă While < condition > 'Bucla este executată când condiția este adevărată [ statement_block ] WendExemplu: citirea unui fișier text linie cu linie
Deschideți „fișier.txt” pentru intrarea ca # 1. Faceți când nu este EOF ( 1 ) „Return True” dacă se așteaptă sfârșitul fișierului . Intrare linie # 1 , strBuffer „Citiți linia în variabila Debug ” . Tipăriți strBuffer „Ieșire în fereastra de depanare Loop Close # 1 Buclă cu postcondițieSintaxa generala:
Do [ statement_block ] [ Exit Do ] Loop While < condiție > Do [ bloc de instrucțiuni ] [ Exit Do ] Buclă până la < condiție >Subrutinele sunt unul dintre elementele de bază ale limbajului. Sunt proceduri și funcții.
Visual Basic implementează de fapt bucla de mesaje Windows. În exemplul de formular, bucla va filtra mesajul WM_MOUSEMOVEși va apela automat procedura Form_MouseMovecu parametrii: ce butoane de mouse au fost apăsate, coordonatele pointerului. Acest mecanism ascunde de dezvoltator unele aspecte ale programării în mediul Windows, permițându-i să înceapă imediat să scrie cod comercial. În cele mai multe cazuri, clasa de sarcini de rezolvat nu va cere programatorului să cunoască mesaje și funcțiile ferestrei. Dar Visual Basic nu împiedică programatorul să implementeze gestionarea mesajelor ferestre. Acest lucru permite o abordare foarte flexibilă pentru construirea de aplicații, dar necesită, de asemenea, suficientă experiență pentru a scrie un astfel de cod, ceea ce poate determina ca programul să ruleze instabil până la un accident.
Un exemplu de funcție pentru rezolvarea unei ecuații pătratice:
Private Sub Main () Dim RetX1 As Double , RetX2 As Double Dim strStatus As String strStatus = SolveQuadraticEquation ( 4 , 6 , 2 , RetX1 , RetX2 ) 'Rezolvați ecuația 4*X^2 + 6*X - 2 = 0 „Afișează răspunsul MsgBox „Rezoluție:” & strStatus & vbCrLf & _ "X1 = " & RetX1 & vbCrLf & _ "X2 = " & RetX2 , vbInformation End Sub ' Ecuație patratică Rezolvare Funcție Funcție publică RezolvareEcuațieCvadratică ( ByVal A ca dublu , _ ByVal B ca dublu , _ ByVal C ca dublu , _ ByRef X1 ca dublu , _ ByRef X2 ca dublu ) Ca șir Dim D ca dublu D = ( B * B ) - ( 4 * A * C ) 'Obțineți valoarea discriminantului Dacă D >= 0 Atunci X1 = ( - B - Sqr ( D )) / ( 2 * A ) ' Calculați rădăcinile ecuației X2 = ( - B + Sqr ( D )) / ( 2 * A ) SolveQuadraticEquation = „Soluție găsită” „Funcția returnează un mesaj despre soluție Else SolveQuadraticEquation = „Discriminant < 0. Fără rădăcini” End If End FunctionÎn acest exemplu, puteți vedea modificatorul în fața , și ByValargumente . Acest lucru asigură că parametrii funcției vor fi transferați după valoare . Modificatorul , pe de altă parte, transmite valoarea prin referință . Pentru acest tip de modificator, funcția poate modifica valorile variabilelor trecute ca parametri. Visual Basic, implicit, transmite întotdeauna valori prin referință dacă niciunul dintre modificatori nu a fost specificat. ABCByRef
Codul programului în Visual Basic este stocat în module. Există doar trei tipuri de module: modul de formular (Form), modul standard (Module) și modul de clasă (Modul de clasă).
Interacțiunea simplă între obiecte este una dintre componentele de bază ale paradigmei Visual Basic. Obiectul în sine este numit o instanță a clasei . Modelul de obiecte VB oferă diferite clase pentru lucrul cu formulare, controale, clipboard, colecții, ecran și așa mai departe. Pentru a interacționa cu alte obiecte , clasa oferă dezvoltatorului o interfață constând din proprietăți , metode și evenimente .
Crearea unui nou obiect dintr-o clasă este posibilă prin legarea timpurie sau tardivă. Pentru legarea timpurie, cuvântul cheie este folosit Newînaintea numelui clasei. Pentru legarea tardivă, este utilizată o funcție CreateObjectcare returnează o referință la obiectul creat. Referințele sunt atribuite variabilelor de tip Objectfolosind operatorul Set. Accesul la metodele și proprietățile unei clase se face prin operatorul punct ., care este plasat imediat după numele variabilei tipului de obiect. Dacă clasa conține evenimente, atunci variabilele sunt declarate cu cuvântul cheie WithEvents, astfel că procedurile de gestionare a evenimentelor vor fi disponibile.
Exemplul arată modul în care programul interacționează cu biblioteca Microsoft Scripting Runtime , care oferă obiecte pentru lucrul cu sistemul de fișiere:
Public Sub Main () Dim objFSO As New FileSystemObject „Creați o instanță a clasei folosind instrucțiunea New Dim objWindows As Folder Setați objWindows = objFSO . GetFolder ( Environ ( "SYSTEMROOT" )) 'Apelați metoda clasei GetFolder și atribuiți o referință obiectului rezultat MsgBox „Folder Windows:” și objWindows . Calea „Citiți proprietățile clasei MsgBox „Data de creare: „ & Format ( objWindows . DateCreated , „AAAA-LL-ZZ H:mm:ss” ) Dim sTextFilePath As String Dim objTS As TextStream sTextFilePath = objFSO . BuildPath ( Environ ( " TEMP " ), " Test file.txt " ) 'Metoda cu doi parametri returnează o valoare de tip String Setați objTS = objFSO . CreateTextFile ( sTextFilePath , True ) objTS . Scrie "Bună ziua Wikipedia!" objTS . închide objFSO . DeleteFile sTextFilePath , True Set objFSO = Nothing 'Assigning Nothing eliberează referința și obiectul poate apela procedura destructor Set objWindows = Nothing 'VB apelează automat destructorul atunci când obiectul nu mai este referit Set objTS = Nothing End SubVisual Basic permite dezvoltatorului să creeze el însuși noi clase. Spre deosebire de alte limbaje de programare, cum ar fi Java și C++, Visual Basic nu are suport complet pentru OOP.
După cum știți, este necesară o clasă abstractă pentru a oferi un șablon pentru o interfață cu alte clase. În Visual Basic, clasele care au membri de clasă, dar nicio implementare pot fi folosite ca clase abstracte, dar de fapt nu sunt. Puteți crea oricând obiecte din clasele Visual Basic, chiar dacă acestea nu conțin cod [4]
Principiul încapsulării funcționează în Visual Basic. Pentru a delimita accesul la membrii clasei, modificatorii Publicși Privatesunt Friendutilizați atunci când descriu proceduri, funcții, constante, variabile și tipuri definite de utilizator.
Moștenirea implementării nu este acceptată. Visual Basic oferă suport numai pentru moștenirea interfeței prin intermediulImplements. Când moșteniți o interfață, orice clasă poate acționa ca clasa de bază a interfeței. În general, orice clasă poate acționa ca clasa de bază a unei interfețe.
Polimorfismul este impus doar prin interfețe, deoarece VB nu acceptă moștenirea. Implementarea polimorfismului este prezentată pe exemplul claselor Car și Aircraft care implementează interfața clasei Transport .
„Funcția publică de clasă ITransport.cls GetMaxSpeed ( ) ca funcție de capăt lung „Clasa CAuto.cls implementează ITransport „Moșteniți interfața Funcție privată ITransport_GetMaxSpeed () Atât timp cât implementarea metodei ITransport_GetMaxSpeed = 240 Funcție finală „Clasa CFly.cls implementează ITransport Funcție privată ITransport_GetMaxSpeed () Atât timp cât ITransport_GetMaxSpeed = 700 Funcție de final 'Modul standard Program.bas Opțiune Explicit Public Sub Main () Dim T As ITransport 'Declară o variabilă de tip ITransport Set T = New cAuto WhatTransportSpeed T 'Trim o referință la o procedură care va apela metoda de clasă dorită, în funcție de implementare Set T = New cFly WhatTransportSpeed T End Sub "Funcția are un argument care ia o referință la un obiect care implementează interfața ITransport. Public Sub WhatTransportSpeed ( Transport As ITransport ) MsgBox "Viteza maximă: " & Transport . GetMaxSpeed () End SubEditorul de cod este un editor de text cu funcții suplimentare pentru introducerea simplă și rapidă a codului sursă:
Mediul de dezvoltare integrat oferă programatorului oportunități bogate de depanare a programelor. Unul dintre avantajele Visual Basic este abilitatea de a schimba codul sursă al programului într-o mare măsură fără a-l recompila și reporni complet. În timpul procedurilor de depanare, dezvoltatorului i se oferă posibilitatea de a muta marcatorul care indică instrucțiunea care se execută în prezent, atât înainte - sărind o parte din cod, cât și înapoi - forțând VB să reexecute instrucțiunile care au fost deja procesate.
Printre altele, mediul oferă instrumente de depanare, cum ar fi Fereastra Imediată, Fereastra Locals, Fereastra Watch și Call Stack Viewer . Astfel de instrumente avansate permit programatorului să efectueze o analiză profundă a algoritmului studiat în aplicația depanată.
Visual Basic intră în modul de depanare atunci când una dintre următoarele condiții este adevărată:
Mediul de dezvoltare integrat vine cu un compilator în P-Code (P-code) , un compilator nativ compatibil Back-End x86 și un linker (linker). Prezența a două compilatoare face posibilă atribuirea Visual Basic atât unui limbaj compilat, cât și unui limbaj interpretat. Indiferent de compilatorul ales, aplicațiile necesită ca mașina virtuală de rulare Visual Basic să ruleze, care este biblioteca MSVBVMXX.DLL, unde XX este versiunea de limbă [5]
Microsoft Visual Basic 6.0 vine cu pachetul și vrăjitorul de implementare [6] pentru a crea pachete de instalare bazate pe un proiect Visual Basic. În comparație cu binecunoscutul său predecesor, Setup Wizard, P&D Wizard oferă funcționalități noi, dar, din păcate, noul instrument conține câteva erori. Una dintre problemele acestei aplicații este o eroare de conversie a datei dacă localitatea setată în sistemul de operare al utilizatorului este diferită de cea americană. Există aplicații terțe care oferă instrumente mai avansate pentru gestionarea pachetelor de instalare.
De asemenea, este posibil să instalați aplicații VB prin simpla copiere, care se rezumă la câțiva pași:
Începând cu versiunea VB 5.0, dezvoltatorului i se oferă posibilitatea nu numai de a utiliza componente ActiveX gata făcute , ci și de a crea propriile lor componente. VB se ocupă de toată munca de creare a codului auxiliar care este conceput pentru a înregistra informații despre componentă în registrul sistemului, implementează interfața IDispatch, creează GUID -uri unice utilizate ca identificatori pentru clase (CLSID), interfețe (IID) și biblioteci de tipuri ( LIBID) . Datorită acestei abordări, programatorul trebuie doar să creeze clase cu funcționalitatea necesară.
Crearea de noi GUID-uri de clasă și interfață depinde de opțiunea de compatibilitate setată din fila de proprietăți a proiectului. Poate dura una dintre cele trei stări:
După finalizarea compilației, rezultatul va fi un fișier de bibliotecă binar conform specificației COM . Această componentă implementează cel puțin 2 interfețe : IUnknown și IDispatch. Biblioteca de tipuri ( TLB ) va fi integrată în resursele executabilului. În plus, sunt create fișiere cu informații utile, cum ar fi EXP și LIB.
Visual Basic oferă facilități de limbaj pentru declararea și apelarea funcțiilor din bibliotecile de linkuri dinamice (DLL). Acest mecanism vă permite să extindeți aplicațiile utilizând biblioteci suplimentare furnizate de alți dezvoltatori, inclusiv cele scrise în diferite limbaje de programare. Un astfel de set de biblioteci este furnizat de sistemul de operare Microsoft Windows.
Sintaxa generală pentru o declarație de funcție și procedură este următoarea:
[ Public | Private ] Declare Sub < procedure_name > lib "dynamic_library_name" [ Alias "alias" ] [ ( parametrii ) ] [ Public | Private ] Declarare Funcție < function_name > lib "dynamic_library_name" [ Alias "alias" ] [ ( parametri ) ] [ Ca return_type ]Aliasurile trebuie specificate într-un număr de cazuri: utilizarea identificatorilor rezervați Visual Basic în numele funcției, numele conține caractere nevalide sau nu poate fi interpretat corect de către mediu. Funcțiile apelate trebuie să accepte convenția de apelare StdCall .
La trecerea unui parametru cu tipul String la funcția WINAPI, VB convertește automat codificarea din Unicode în ANSI, după ce funcția este executată, are loc conversia inversă din ANSI în Unicode. Pentru a preveni conversia automată a șirurilor, argumentele funcției trebuie declarate ca Long, iar un pointer către un șir trebuie să fie transmis folosind funcția StrPtr, astfel încât performanța unei aplicații care efectuează apeluri multiple de funcții poate fi optimizată.
Un exemplu de apelare a API-ului Windows pentru a obține calea completă către directorul Windows și pentru a afișa un mesaj pe ecran:
Funcția de declarare privată GetWindowsDirectory Lib „kernel32.dll” Alias „GetWindowsDirectoryA” ( ByVal buffer As String , ByVal nSize As Long ) As Long Funcția de declarare privată 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 'Variabila în care va fi primit rezultatul funcției. Dim ret Len As Long buffer = String ( 256 , vbNullChar ) lens = GetWindowsDirectory ( buffer , Len ( buffer )) 'Function call buffer = Left ( buffer , lens ) MessageBox 0 & , "OS instalat în director: " & buffer , " Informații " , MB_ICONASTERISK ' Apelul funcției End SubTrebuie remarcat faptul că apelarea funcțiilor WINAPI este asociată cu anumite acorduri interne, și anume, modul în care funcția va returna un rezultat, ce structuri trebuie să treacă, numărul de argumente și tipurile acestora, care vor fi conținute în valoarea returnată. Dezvoltatorii folosesc documentația tehnică furnizată împreună cu bibliotecile cu care lucrează pentru a declara corect funcțiile și structurile.
Limbajul este strâns legat de mediul său de dezvoltare și de sistemul de operare Microsoft Windows, fiind exclusiv un instrument de scriere a aplicațiilor Windows. Legarea de mediu constă în faptul că există un număr mare de instrumente concepute pentru a ajuta și a facilita programarea: un depanator încorporat, vizualizarea variabilelor și a structurilor de date din mers, o fereastră de depanare, sfaturi cu instrumente la tastarea unui program ( IntelliSense ). Toate aceste avantaje fac inutilă și chiar imposibilă utilizarea Visual Basic în afara mediului de dezvoltare, de exemplu, într-un editor de text obișnuit.
Cu toate acestea, merită remarcat faptul că toate deficiențele limbajului provin din principalul său avantaj - simplitatea dezvoltării unei interfețe grafice. Prin urmare, mulți programatori folosesc Visual Basic pentru a dezvolta interfața cu utilizatorul, iar funcționalitatea programului este implementată ca biblioteci de link-uri dinamice ( DLL ) scrise în alte limbi (de exemplu, C++ ).
Acest mediu de dezvoltare practic nu diferă de clasicul Visual Basic, care este conceput pentru scrierea de macro -uri și alte programe de aplicații pentru aplicații specifice de afaceri. A primit cea mai mare popularitate datorită utilizării sale în pachetul Microsoft Office . Utilizarea pe scară largă a Visual Basic pentru aplicații, cuplată cu o lipsă inițială de atenție față de problemele de securitate, a condus la răspândirea macrovirusurilor .
Particularitati:
Limbajul de scripting , care este o versiune oarecum trunchiată a Visual Basic obișnuit. Folosit în principal pentru a automatiza administrarea sistemelor Microsoft Windows și pentru a crea pagini ASP și scripturi pentru Internet Explorer .
Particularitati:
Acest instrument este utilizat pentru a dezvolta software pentru sistemele de operare Windows CE și Windows Mobile . Include IDE, depanator și emulator pentru testarea aplicației. eMbedded Visual Basic nu se bazează pe limbajul de programare Visual Basic cu funcții complete, ci pe limbajul de script Visual Basic Scripting Edition . Aplicațiile sunt compilate în cod P și fișierele executabile au extensia VB, care sunt asociate cu aplicația gazdă.
Particularitati:
BASIC | Dialectele limbajului de programare|
---|---|
Clasic |
|
tranzitorie |
|
procedural |
|
Obiect |
|
Mobil |
|
Consolă |
|
Limbaje de programare | |
---|---|
|