Visual Basic | |
---|---|
Kieliluokka | Proseduurillinen , oliosuuntautunut , komponenttisuuntautunut , tapahtumasuuntautunut |
Toteutustyyppi | Käännetty , tulkittu |
Esiintyi | 1991 |
Kehittäjä | Microsoft |
Tiedostotunniste _ | .bas, .cls, .frm, .vbp, .vbg |
Vapauta | Visual Basic 6.0 (1998 ) |
Tyyppijärjestelmä | Staattinen kirjoitus , Voimakas kirjoittaminen , Dynaaminen kirjoitus |
Tärkeimmät toteutukset | Microsoft Visual Studio |
Murteet | Visual Basic sovelluksille , Visual Basic Script |
Vaikutettu | QuickBasic , BASIC |
vaikutti | Visual Basic .NET , REALbasic , Gambas , Xojo , Basic4ppc |
Verkkosivusto | msdn.microsoft.com/ru-RU/vstudio/ms788229.aspx |
Mediatiedostot Wikimedia Commonsissa |
Microsoft Visual Basic on Microsoft Corporationin kehittämä ohjelmointikieli ja integroitu ohjelmistokehitysympäristö . Visual Basic -kieli peri esi-isänsä, BASIC-kielen hengen, tyylin ja osittain syntaksin , jolla on monia murteita. Samaan aikaan Visual Basic yhdistää olio- ja komponenttisuuntautuneiden ohjelmointikielten proseduurit ja elementit . VB IDE sisältää työkalut visuaaliseen käyttöliittymäsuunnitteluun, koodieditorin, jossa on IntelliSense ja syntaksin korostus, sekä työkaluja sovellusten virheenkorjaukseen.
Visual Basic on myös hyvä työkalu tietokantasovellusten nopeaan kehittämiseen (RAD) Microsoft Windows -perheen käyttöjärjestelmille . Monet ympäristön mukana toimitettavat valmiit komponentit on suunniteltu auttamaan ohjelmoijaa heti aloittamaan liiketoimintasovelluksen liiketoimintalogiikan kehittämisen, ohjaamatta hänen huomioaan ohjelman käynnistyskoodin kirjoittamiseen, tapahtumien tilaamiseen ja muihin VB:n automaattisesti toteuttamiin mekanismeihin.
Vakavat kehittäjät tunnustivat Visual Basicin ensimmäisen kerran version 3 julkaisun jälkeen. Lopullinen tunnustus täysimittaiseksi ohjelmointityökaluksi Windowsille tuli version 5 julkaisun myötä. Versiosta VB6, joka on osa Microsoft Visual Studio 6.0:aa, on tullut todella kypsä ja monipuolinen tuote.
Julkaisupäivä | Versio | Kuvaus |
---|---|---|
toukokuuta 1991 | 1.0 | Visual Basic 1.0 Microsoft Windowsille . QBasic - syntaksi otettiin kielen perustaksi ja innovaatio, joka toi kielelle sitten suuren suosion, oli kielen ja graafisen käyttöliittymän välisen viestinnän periaate. Tämän periaatteen on kehittänyt Alan Cooper ( Alan Cooper ) ja se toteutettiin prototyyppissä Tripod (tunnetaan myös nimellä Ruby ) |
syyskuuta 1992 | 1.0 | Visual Basic 1.0 DOS -käyttöjärjestelmässä . Se ei ollut täysin yhteensopiva VB:n Windows-version kanssa, koska se oli seuraava QuickBASIC-versio ja toimi näyttötekstitilassa. On mielenkiintoista huomata, että paketti sisälsi erityisen apuohjelman, joka muunsi tämän version projektit Visual Basic 1.0 -projekteiksi Windowsille. Hän teki koodista mahdollisimman yhteensopivan Windows-version kanssa, muunsi lomakkeet (vaikka tulos oli epätyydyttävä teksti- ja grafiikkatilan eroista johtuen) ja antoi koodiin kommentteja ja vinkkejä lisäparannuksiin. |
marraskuuta 1992 | 2.0 | Visual Basic 2.0. Kehitysympäristöstä tuli helpompi käyttää ja se toimi nopeammin. Ominaisuudet-ikkuna on siirtynyt erilliseen luetteloon. Lisätty lähdekoodin korostus . |
1993 | 3.0 | Visual Basic 3.0 julkaistiin Standard- ja Professional-versioina. Lisäksi pakettiin on lisätty moottori Access-tietokantojen kanssa työskentelemiseen . |
elokuuta 1995 | 4.0 | Visual Basic 4.0 oli versio, joka pystyi luomaan sekä 32-bittisiä että 16-bittisiä Windows-sovelluksia. Lisäksi luokkien kirjoittaminen VB:llä tuli mahdolliseksi, ja Visual Basicista tuli vihdoin täysimittainen kääntäjä , mikä nosti huomattavasti ohjelman suoritusnopeutta. Lisätty tuki OLE -ohjaimille (OCX), joka korvaa vanhat VBX-ohjaimet |
Helmikuu 1997 | 5.0 | Visual Basic 5.0 - tästä versiosta alkaen tuli mahdolliseksi kehittää perinteisten sovellusten ohella omia COM-komponentteja . Kääntämällä tällainen komponentti OCX-tiedostoksi ja toimittamalla se oli mahdollista toimittaa sen ohjausobjekti paitsi loppukäyttäjälle , myös muille kehittäjille, minkä jälkeen he saattoivat integroida tämän objektin sovelluksiinsa. Integroitu ympäristö sisältää P-Code- ja Native - kääntäjät. Sovellukset suoritetaan uudella virtuaalikoneella, joka on toteutettu dynaamisessa kirjastossa MSVBVM50.DLL. Myös tämän vuoden ensimmäisellä neljänneksellä Microsoft julkaisee tuotteen Visual Basic 5 Control Creation Edition (VB5CCE) -erikoisversiossa, joka on erikoistunut vain ActiveX -komponenttien suunnitteluun . |
1998 puolivälissä | 6.0 | Visual Basic 6.0 - Optimoitu virtuaalikoneen toiminta ja siirretty MSVBVM60.dll-tiedostoon. Parannettu alkuperäisen kääntäjän suorituskyky. Lisätty uusia toimintoja merkkijonojen ja taulukoiden käsittelyyn. Tämä kielen versio on klassisen VB:n uusin versio. Microsoft muutti Basic-perheen kielikäytäntöä ja Visual Basicin kehittämisen sijaan luotiin kokonaan uusi kieli, Visual Basic .NET . |
2002 | 7.0 | Ensimmäinen Visual Basic .NET -julkaisu . Tärkein ominaisuus on, että koodia hallitsee täysin .NET Framework Common Language Runtime . Rikki taaksepäin yhteensopivuus klassisen Visual Basic (jäädytetty VB6) kanssa. |
huhtikuuta 2003 | 7.1 | Microsoft on päivittänyt Visual Basic .NET:in ja optimoinut kääntäjän. Julkaistu .NET Framework 1.1:n päivitetyn version kanssa. |
2005 | 8.0 | Mukana Visual Studio 2005 . Vaatii .NET Framework 2.0:n. Visual Basic .NET 2003:n julkaisun jälkeen Microsoft poisti ".NET"-etuliitteen tuotteen nimestä ja seuraavan version nimi on Visual Basic 2005. |
2008 | 9.0 | Mukana Visual Studio 2008 . Vaatii .NET Framework 3.5:n |
2010 | 10.0 | Mukana Visual Studio 2010 . Vaatii .NET Framework 4:n |
2012 | 11.0 | Mukana Visual Studio 2012 . Vaatii .NET Framework 4.5:n |
2013 | 12.0 | Mukana Visual Studio 2013 :ssa . Vaatii .NET Framework 4.5.1:n |
2015 | 14.0 (ei julkaistu versiona 13.0) | Mukana Visual Studio 2015 . .NET Framework päivitetty versioon 4.6 |
2017 | 15.0 | Mukana Visual Studio 2017 . |
Visual Basic -version 6.0 julkaisun jälkeen Microsoftin kehittäjät muuttivat merkittävästi tämän tekniikan kehityssuuntaa. Visual Basic .NET ei salli ohjelmointia vanhalla tavalla, koska itse asiassa se on täysin erilainen kieli, sama kuin mikä tahansa muu ohjelmointikieli .NET -alustaan . Kielen yksilöllisyys ja sen edut (yksinkertaisuus, ohjelmien luomisen nopeus, valmiiden komponenttien helppokäyttöisyys) eivät ole .NET-ympäristössä käytettynä yhtä tärkeitä kuin ennen - kaikki keskittyy ominaisuuksiin itse .NET-alustan luokkakirjastoissaan. Tällä hetkellä (kesäkuussa 2015) meidän on puhuttava Visual Basicista, kuten kielen klassisista versioista 4.0 - 6.0, sen murteista: Visual Basic for Applications (VBA) ja Visual Basic Scripting Edition (VBScript) sekä kielestä .NET-alusta - Visual Basic .NET
Maaliskuussa 2020 Microsoft ilmoitti tukevansa Visual Basicia .NET 5.0 Unified Platformissa, mutta se ei enää lisää uusia ominaisuuksia tai kehitä kieltä [1] [2] .
Visual Basicin muuttujat ilmoitetaan operaattorilla Dim, jota seuraa nimi, sitten avainsana Asja sitten muuttujan tyyppi. Jos tyyppi jätetään pois, avainsanaa Asei määritetä ja muuttuja ilmoitetaan Variantiksi. Jos et määritä rakennetta Option Explicitilmoitusosiossa, muuttujien nimenomaista ilmoitusta ei vaadita ja ne luodaan automaattisesti ensimmäisen käyttökerran yhteydessä. Tämä käyttäytyminen voi johtaa ohjelman suoritusnopeuden hidastumiseen, koska ilmoittamattomat muuttujat ovat tyyppiä Variant, sekä loogisia virheitä, jotka liittyvät olemassa olevan muuttujan nimen väärään syöttöön tai ristiriitojen riskiin sovelluksessa, kun laajuus muuttuja ei ole täysin selvä.
Dim strMessage As String 'merkkityyppisen muuttujan ilmoitus Dim iProductCount As Integer 'kokonaislukutyypin muuttujan ilmoitus Dim dt70YearsOfVictory As Date 'muuttujan ilmoitus päivämäärän ja kellonajan tallentamista varten Dim otherValue ' tyyppiä ei määritetty, muuttuja tyyppiä Variantti Public Sub Main () strMessage = "Hei maailma!" iProductCount = 125 dt70YearsOfVictory = # 5 / 9 / 2015 14:00:00 PM # ' päivämäärä 9. toukokuuta 2015 14:00:00 otherValue = 12,5 ' muuttujatyyppi Variantti, alatyyppi Double. otherValue = "Wikipedia" ' muuttujatyyppi Variantti, alatyyppi String. loppu subVisual Basic 6.0 -perustyyppitaulukko
Nimi | Tyypin koko | Tietotyypin kuvaus |
---|---|---|
tavua | 1 tavu | Tavu. Suunniteltu tallentamaan kokonaislukuja 0–255. Jos tämän tyyppiselle muuttujalle on määritetty arvo, joka ylittää nämä rajat, Visual Basic luo ajonaikaisen virheen. |
Kokonaisluku | 2 tavua | Koko. Suunniteltu tallentamaan kokonaislukuja välillä −32 768 - 32 767 . Tyyppimerkinnän "%" jälkiliite. |
Pitkä | 4 tavua | pitkä kokonaisluku. Suunniteltu tallentamaan kokonaislukuja välillä −2 147 483 648 - 2 147 483 647 . Tyyppimerkinnän "&" jälkiliite. |
Yksittäinen | 4 tavua | Yksi tarkkuus liukuluku. Negatiivisten arvojen alue - 3,402823E38 - 1,401298E-45 ; 1.401298E -45 - 3.402823E38 positiivisille arvoille. Tyyppimerkinnän "!" |
Kaksinkertainen | 8 tavua | Kaksinkertainen tarkkuus liukuluku. Tämän tyyppisten muuttujien avulla voit tallentaa enintään 16 numeroa ja enintään 300 merkkiä pitkiä numeroita. Arvoalue vaihtelee välillä -1.80E+308 - 1.80E+308. Pääte on "#". Sen avulla tehdyt laskelmat ovat likimääräisiä, koska luvun binääriesitystä käytetään IEEE 754 -standardin mukaisesti . |
Desimaali | 16 tavua | Skaalattu kokonaisluku. Tämä tyyppi käyttää numeroiden desimaaliesitystä. Laskelmat sillä, kuten myös Valuutta-tyypillä, ovat tarkkoja. Arvoalue on -7,92E+28 - 7,92E+28. Desimaalityyppistä muuttujaa ei voi ilmoittaa suoraan. Sitä voidaan käyttää vain Variantin alatyyppinä, ja muuttuja voidaan suoratoistaa kyseiseen tyyppiin Cast-funktiolla CDec. |
Boolean | 2 tavua | Boolen tietotyyppi voi tallentaa vain kaksi arvoa: tosi tai epätosi, tosi tai epätosi. VB:n todellinen arvo vastaa kokonaislukua −1 ja väärä arvo on 0, ja implisiittisen tyypin valussa mitä tahansa muuta numeerista arvoa kuin nollaa käsitellään tosina. Tämä toiminta tekee mahdolliseksi käyttää loogisia operaattoreita AND, OR, NOT, XORei vain Boolen algebrassa, vaan myös bittikohtaisissa operaatioissa. [3] |
merkkijono | 10 + 2*N tavua | Vaihtuvapituinen merkkijono. Suunniteltu tallentamaan merkkijonotietoja. Itse merkkijono on tallennettu Unicode -koodauksella , joten jokainen merkki on koodattu 2 tavulla. Jos katsot tyyppiä sisältäpäin, 4 tavua käytetään lisäksi osoittimen tallentamiseen merkkijonoon, 4 tavua merkkijonon kokoa varten ja itse merkkijono päätetään nollamerkeillä (toiset 2 tavua). Näin ollen rivin enimmäiskoko voi olla jopa 2 Gt. Suffiksi kuten "$". |
merkkijono*N | 2*N tavua | Vakiopituinen merkkijono. Aivan kuten merkkijonotyyppi, se tallentaa merkkidataa, paitsi että tietojen koko on kiinteä ja määritetään muuttujan ilmoittamisen yhteydessä. Jos merkkijonoarvo on liian suuri, se katkaistaan vaadittuun kokoon. Jos merkkijono on vaadittua pienempi, koko tasoitetaan lisäämällä välilyönti. On huomattava, että kiinteät merkkijonot ja taulukot sekä rakenteet eivät voi olla suurempia kuin 64 kb. |
Päivämäärä | 8 tavua | Tietotyypin avulla voit tallentaa kellonajan ja päivämäärän arvoja keskiyön, 1. tammikuuta 100 ja keskiyön, 31. joulukuuta 9999 välillä. Jos muuttujalle on määritetty vain päivämääräarvo, aika on 00:00. Kokonaislukuyksikkö edustaa yhtä päivää. Tämän avulla voit lisätä ja vähentää päivämääriä käyttämällä vain matemaattisia operaattoreita, mutta VB tarjoaa erityisiä päivämäärätoimintoja tämän saavuttamiseksi. |
Esine | 4 tavua | Käytetään viittauksen tallentamiseen objektiin. Tämän tyypin muuttujan määritys tehdään käyttämällä Set. Tyyppi itsessään on analoginen IDispatchille; se tallentaa viittauksen IDispatch-liittymään. Jokaiselle objektille on käytettävä IUnknown. |
Valuutta | 8 tavua | Raha. Tässä tyypissä voi olla enintään 4 numeroa desimaalipilkun jälkeen ja enintään 14 ennen sitä. Arvot ovat desimaalilukuja, eivät binaarisia, kuten yhden ja kahden tarkkuuden liukulukutyypeille. Näin laskelmat tehdään oikein. Arvoalue on −922337203685477,6000 - 922337203685477,6000 . Tätä tyyppiä suositellaan taloudellisiin laskelmiin. Suffiksi "@" |
Variantti | 16 tavua / 22 tavua + N tavua / N tavua | Variant-tyyppinen muuttuja voi sisältää minkä tahansa tyyppistä tietoa, mukaan lukien objektiviittaukset, käyttäjän määrittämät tyypit ja taulukot. Visual Basic suorittaa automaattisesti tarvittavat tietomuunnokset . Numeron sisältävä alatyyppi vaatii 16 tavua muistia ja merkkijonotietojen tallentamiseen 22 tavua + itse merkkijonon pituus. Arvoalue on yhtä suuri kuin alatyypin arvoalue. Tämä tyyppi on suoritusnopeudeltaan hitain, koska arvojen purkaminen ja pakkaaminen vie aikaa. |
Visual Basic -kieli sisältää monia operaattoreita, jotka vastaavat aritmeettisista operaatioista, vertailu- ja osoitusoperaatioista sekä ketjuttamisesta .
toimeksiantooperaattori
C:ssä toteutettu moninkertainen osoitus ei ole mahdollista. A = B = Cei tarkoita sitä A, Bja Cniillä on samat arvot. VB arvioi lausekkeen ja määrittää tuloksen B = Cmuuttujalle , tai , 0 tai −1 tyypistä riippuen. ATrueFalse
Aritmeettiset operaattorit
Vertailuoperaattorit
Loogiset operaattorit
Ketjutusoperaattorit
Visual Basicissa, kuten monissa ohjelmointikielissä, on rakenteita, jotka ohjaavat toimintojen suoritusjärjestystä. Jotkut konstrukteista, kuten GoSubja Return, säilytetään yhteensopivuuden vuoksi BASIC-kielen aikaisempien versioiden kanssa, mutta toteutus erillisinä toimenpiteinä voi tarjota jäsennellymmän koodin.
HaaraoperaattoriYleinen syntaksi:
'Kirjoita haarakäsky yhdelle riville If < ehto > sitten [ action_kun_ehto_on_tosi ] 'Tämän merkinnän avulla voit suorittaa toimintoja ehdon totuudesta riippuen If < ehto > Then [ action_when_condition_is true ] Else [ action_when_condition_false ] 'Kirjoita monirivinen haarakäsky If < ehto > Sitten [ toiminta_kun_ehto_on tosi ] ElseIf < ehto2 > Siis [ toiminto_kun_ehto2_tosi ] ElseIf < ehtoN > Then [ action_kun_ehtoN_tosi ] Else [ toiminta_kun_ehto_epätosi ] End If Operaattorin valintaYleinen syntaksi:
Valitse tapaus < arvo_testattu > 'Yhden tai useamman ehdon mukaan testattava muuttuja tai lauseke Case < arvo_1 > 'Toiminto suoritetaan, jos testattava arvo vastaa arvoa 1 [ action_1 ] Tapaus < arvo_2 > , < arvo_3 > , < arvo_3 > Testit arvoluettelo. Jos osuma löytyy, suoritetaan toiminto [ action_2 ] Case < value_5 > To < value_6 > 'Tarkistaa arvoalueen [ action_3 ] Case Is >= < value_7 > 'Tarkistaa totuuden arvon ehdolla [ action_4 ] Tapaus muu 'Toiminto suoritetaan, jos mikään ehdoista ei täyty [ action_5 ] Lopeta valintaEsimerkki: erilaisten viestien näyttäminen muuttujan arvon mukaan
'Syötetään muuttuja ja annetaan sille arvo manuaalisesti Dim X As Double X = InputBox ( "Syötä muuttujan X numeerinen arvo" ) Valitse tapaus X 'Tarkista, sopiiko arvomme johonkin kuvitteelliseen funktioon Tapaus on < 5 , Is >= 20 , 12 - 15 'Kelvollisten arvojen alue MsgBox "Kelvollinen arvo jollekin funktiolle" Tapaus Muu 'Virheelliset arvot MsgBox " Arvoa ei voi käyttää joissakin toiminnoissa" Lopetusvalinta Silmukka laskurillaYleinen syntaksi:
For < variable > = < value > To < end_value > [ Step < step_value >] [ lauseke ] [ Exit For ] 'Poistu silmukasta Seuraava [ muuttuja ]Esimerkki: parillisten lukujen summan laskeminen välillä 1-100
I = 0 - 100 Vaihe 2 Summa = Summa + I Seuraava _ Yhteinen sykliYleinen syntaksi:
Jokaiselle < muuttujalle > < kokoelmassa > [ lauseke_lohko ] [ Exit For ] ' Pakota poistumissilmukka Seuraava [ muuttuja ]Esimerkki: Näyttää taulukon jokaisen elementin
Dim strItem Variant _ Jokaiselle taulukossa olevalle strItem ( " omena " , " päärynä" , "luumu" ) Tulosta strItem Seuraava Ehdollinen silmukkaYleinen syntaksi:
Do While < ehto > ' Silmukka suoritetaan, kun ehto on tosi [ lauseke lohko ] [ Exit Do ] 'Pakotettu poistuminen silmukasta Do Until < ehto > 'Silmukka suoritetaan, kun ehto on epätosi [ lauseke lohko ] [ Exit Do ] Loop Vaikka < ehto > 'Silmukka suoritetaan, kun ehto on tosi [ lauseke_lohko ] WendEsimerkki: Tekstitiedoston lukeminen rivi riviltä
Avaa "file.txt" syötteelle As # 1 Do While Not EOF ( 1 ) ' Palauta True, jos tiedoston loppua odotetaan Rivisyöttö # 1 , strBuffer 'Lue rivi Debug - muuttujaan . Tulosta strBuffer 'Tuloste virheenkorjausikkunaan Loop Close # 1 Silmukka jälkiehdon kanssaYleinen syntaksi:
Tee [ lauseke_lohko ] [ Poistu Do ] Loop While < ehto > Do [ lausekelohko ] [ Poistu Do ] Loop Until < ehto > _Aliohjelmat ovat yksi kielen peruselementeistä. Ne ovat menettelyjä ja toimintoja.
Visual Basic todella toteuttaa Windowsin viestisilmukan. Lomakeesimerkissä silmukka suodattaa viestin WM_MOUSEMOVEja kutsuu automaattisesti proseduurin Form_MouseMoveparametrein: mitä hiiren painikkeita on painettu, osoittimen koordinaatit. Tämä mekanismi piilottaa joitain Windows-ympäristön ohjelmoinnin näkökohtia kehittäjältä, jolloin hän voi aloittaa välittömästi kaupallisen koodin kirjoittamisen. Useimmissa tapauksissa ratkaistavien tehtävien luokka ei vaadi ohjelmoijalta tietoa viesteistä ja ikkunoiden toiminnoista. Mutta Visual Basic ei rajoita ohjelmoijaa toteuttamasta ikkunaviestien käsittelyä. Tämä mahdollistaa erittäin joustavan lähestymistavan sovellusten rakentamiseen, mutta vaatii myös riittävää kokemusta tällaisen koodin kirjoittamisesta, mikä voi saada ohjelman toimimaan epävakaasti kaatumiseen asti.
Esimerkki funktiosta toisen asteen yhtälön ratkaisemiseksi:
Yksityinen Sub Main ( ) Dim RetX1 As Double , RetX2 As Double Dim strStatus As String strStatus = SolveQuadraticEquation ( 4 , 6 , 2 , RetX1 , RetX2 ) 'Ratkaise yhtälö 4*X^2 + 6*X - 2 = 0 'Näytä vastaus MsgBox "Resoluutio: " & strStatus & vbCrLf & _ "X1 = " & RetX1 & vbCrLf & _ "X2 = " & RetX2 , vbInformation End Sub . _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ) - ( 4 * A * C ) 'Hae erottimen arvo Jos D >= 0 , niin X1 = ( - B - Sqr ( D )) / ( 2 * A ) ' Laske yhtälön X2 = ( - B + Sqr ( D )) juuret / ( 2 * A ) SolveQuadraticEquation = "Ratkaisu löydetty" 'Funktio palauttaa viestin ratkaisusta Else SolveQuadraticEquation = "Discriminantti < 0. Ei juuria" End If End FunctionTässä esimerkissä näet muuntimen , ja ByValargumenttien edessä . Tämä varmistaa, että funktion parametrit välitetään arvon mukaan . Muokkaus puolestaan välittää arvon viitteellä . Tämän tyyppiselle modifioijalle funktio voi muokata parametreina välitettyjen muuttujien arvoja. Visual Basic välittää oletusarvoisesti arvot aina viitteellä, jos mitään modifioimista ei ole määritetty. ABCByRef
Visual Basicin ohjelmakoodi on tallennettu moduuleihin. Moduuleja on vain kolmenlaisia: lomakemoduuli (Form), vakiomoduuli (Module) ja luokkamoduuli (Class Module).
Yksinkertainen objektien välinen vuorovaikutus on yksi Visual Basic -paradigman peruskomponenteista. Itse objektia kutsutaan luokan ilmentymäksi . VB-objektimalli tarjoaa erilaisia luokkia työskentelyyn lomakkeiden, säätimien, leikepöydän, kokoelmien, näytön jne. kanssa. Vuorovaikutusta muiden objektien kanssa luokka tarjoaa kehittäjälle käyttöliittymän , joka koostuu ominaisuuksista , menetelmistä ja tapahtumista .
Uuden objektin luominen luokasta on mahdollista aikaisin tai myöhään sitomalla. Varhaisessa sitomisessa avainsanaa käytetään Newennen luokan nimeä. Myöhäiseen sidontaan käytetään funktiota CreateObject, joka palauttaa viittauksen luotuun objektiin. Viittaukset määritetään tyyppisille muuttujille Objectkäyttämällä operaattoria Set. Luokan menetelmiin ja ominaisuuksiin pääsee käsiksi piste-operaattorilla ., joka sijoitetaan välittömästi objektityypin muuttujan nimen perään. Jos luokka sisältää tapahtumia, muuttujat ilmoitetaan avainsanalla WithEvents, jolloin tapahtumankäsittelymenettelyt ovat käytettävissä.
Esimerkki näyttää, kuinka ohjelma toimii vuorovaikutuksessa Microsoft Scripting Runtime -kirjaston kanssa, joka tarjoaa objekteja tiedostojärjestelmän kanssa työskentelemistä varten:
Public Sub Main () Dim objFSO As New FileSystemObject 'Luo luokan esiintymä käyttämällä New Dim objWindows As Folder -käskyä Aseta objWindows = objFSO . GetFolder ( Environ ( "SYSTEMROOT" )) 'Kutsu GetFolder-luokkametodia ja anna viittaus tuloksena olevaan objektiin MsgBox "Windows-kansio:" & objWindows . Polku 'Lue MsgBox -luokan ominaisuudet "Luotumispäivämäärä:" & Muoto ( objWindows . DateCreated , "VVVV-KK-PP H:mm:ss" ) Himmeä sTextFilePath merkkijonona Dim objTS Tekstivirtana _ _ sTextFilePath = objFSO . BuildPath ( Environ ( "TEMP" ), "Test file.txt" ) 'Kaksi parametria sisältävä menetelmä palauttaa arvon, jonka tyyppi on String Aseta objTS = objFSO . CreateTextFile ( sTextFilePath , True ) objTS . Kirjoita "Hei Wikipedia!" objTS . kiinni objFSO . DeleteFile sTextFilePath , True Set objFSO = Ei mitään 'Assigning Nothing vapauttaa viittauksen ja objekti voi kutsua destructor-proseduurin Set objWindows = Ei mitään 'VB kutsuu automaattisesti tuhoajaa, kun objektiin ei enää viitata Aseta objTS = Ei mitään End SubVisual Basic antaa kehittäjälle mahdollisuuden luoda uusia luokkia itse. Toisin kuin muut ohjelmointikielet, kuten Java ja C++, Visual Basicilla ei ole täyttä tukea OOP:lle.
Kuten tiedät, abstraktia luokkaa tarvitaan luomaan mallin käyttöliittymää muille luokille. Visual Basicissa luokkia, joissa on luokan jäseniä, mutta ei toteutusta, voidaan käyttää abstrakteina luokkina, mutta itse asiassa ne eivät ole. Voit aina luoda objekteja Visual Basic -luokista, vaikka ne eivät sisältäisi koodia [4]
Kapselointiperiaate toimii Visual Basicissa . Luokan jäsenten käyttöoikeuden rajoittamiseksi määritteitä Publicja käytetään kuvattaessa proseduureja, funktioita, vakioita, muuttujia ja käyttäjän määrittämiä tyyppejä Private.Friend
Toteutuksen periytymistä ei tueta. Visual Basic tukee vain käyttöliittymän periytymistäImplements. Liittymää periessään mikä tahansa luokka voi toimia rajapinnan perusluokkana. Yleensä mikä tahansa luokka voi toimia rajapinnan perusluokkana.
Polymorfismi pakotetaan vain rajapintojen kautta, koska VB ei tue periytymistä. Polymorfismin toteutus on esitetty esimerkkinä Liikenne - luokan rajapinnan toteuttavista auto - ja lentokoneluokista .
'Class ITransport.cls Public Function GetMaxSpeed ( ) Pitkän pään toimintona 'Class CAuto.cls toteuttaa ITransport 'Peri käyttöliittymän Yksityinen toiminto ITransport_GetMaxSpeed () niin kauan kuin menetelmän käyttöönotto ITransport_GetMaxSpeed = 240 lopputoiminto 'Class CFly.cls toteuttaa ITransportin Yksityinen toiminto ITransport_GetMaxSpeed ( ) As Long ITransport_GetMaxSpeed = 700 lopputoiminto 'Vakiomoduuli Program.bas Vaihtoehto Explicit Public Sub Main () Dim T As ITransport 'Ilmoita ITransport-tyyppinen muuttuja Aseta T = Uusi cAuto WhatTransportSpeed T 'Välitetään viittaus prosessiin, joka kutsuu haluttua luokkamenetelmää toteutuksesta riippuen Aseta T = Uusi cFly WhatTransportSpeed T End Sub "Funktiolla on argumentti, joka ottaa viittauksen ITransport-rajapinnan toteuttavaan objektiin. Public Sub WhatTransportSpeed ( Transport As ITransport ) MsgBox "Maksiminopeus:" & Transport . GetMaxSpeed () End SubKoodieditori on tekstieditori, jossa on lisäominaisuuksia helppoa ja nopeaa lähdekoodin syöttämistä varten:
Integroitu kehitysympäristö tarjoaa ohjelmoijalle runsaasti mahdollisuuksia ohjelmien virheenkorjaukseen. Yksi Visual Basicin eduista on mahdollisuus muuttaa ohjelman lähdekoodia suuressa määrin kääntämättä sitä kokonaan uudelleen ja käynnistämättä sitä uudelleen. Virheenkorjauksen aikana kehittäjälle annetaan mahdollisuus siirtää parhaillaan suoritettavaa käskyä osoittavaa merkkiä sekä eteenpäin - ohittaa osa koodista että taaksepäin - pakottaa VB suorittamaan uudelleen jo käsitellyt ohjeet.
Ympäristö tarjoaa muun muassa virheenkorjaustyökaluja, kuten välittömän ikkunan, paikalliset-ikkunan, katseluikkunan ja puhelupinon katseluohjelman . Tällaisten edistyneiden työkalujen avulla ohjelmoija voi suorittaa syvällisen analyysin tutkittavasta algoritmista virheenkorjaussovelluksessa.
Visual Basic siirtyy virheenkorjaustilaan, kun jokin seuraavista ehdoista täyttyy:
Integroidun kehitysympäristön mukana tulee kääntäjä P-koodilla (P-koodi) , natiivi Back-End x86 -yhteensopiva kääntäjä ja linkki ( linkkeri ). Kahden kääntäjän läsnäolo mahdollistaa Visual Basicin määrittämisen sekä käännetylle että tulkitukselle. Riippumatta siitä, mikä kääntäjä valitaan, sovellukset vaativat Visual Basic -ajonaikaisen virtuaalikoneen, joka on kirjasto MSVBVMXX.DLL, jossa XX on kieliversio [5]
Microsoft Visual Basic 6.0:n mukana tulee ohjattu paketointi- ja käyttöönottotoiminto [6] Visual Basic -projektiin perustuvien asennuspakettien luomiseen. Verrattuna tunnettuun edeltäjäänsä, Setup Wizardiin, P&D Wizard tarjoaa uusia toimintoja, mutta valitettavasti uusi työkalu sisältää joitain virheitä. Yksi tämän sovelluksen ongelmista on päivämäärän muunnosvirhe, jos käyttäjän käyttöjärjestelmässä asetettu maa-asetus poikkeaa amerikkalaisesta. On olemassa kolmannen osapuolen sovelluksia, jotka tarjoavat edistyneempiä työkaluja asennuspakettien hallintaan.
On myös mahdollista asentaa VB-sovelluksia yksinkertaisella kopioimalla, joka tiivistyy muutamaan vaiheeseen:
Versiosta VB 5.0 alkaen kehittäjälle annetaan mahdollisuus paitsi käyttää valmiita ActiveX -komponentteja , myös luoda omia. VB huolehtii kaikesta apukoodin luomisesta, joka on suunniteltu rekisteröimään komponentin tietoja järjestelmärekisteriin, toteuttamaan IDispatch-rajapinta, luomaan yksilöllisiä GUID -tunnisteita, joita käytetään tunnisteina luokille (CLSID), rajapinnoille (IID) ja tyyppikirjastoille ( LIBID). Tämän lähestymistavan ansiosta ohjelmoijan tarvitsee vain luoda luokkia, joissa on tarvittavat toiminnot.
Uusien luokka- ja käyttöliittymä-GUID-tunnusten luominen riippuu projektin ominaisuudet -välilehden yhteensopivuusvaihtoehdosta. Se voi olla yksi kolmesta tilasta:
Kun käännös on valmis, tulos on binäärikirjastotiedosto COM -määrityksen mukaisesti . Tämä komponentti toteuttaa vähintään kaksi liitäntää : IUnknown ja IDispatch. Tyyppikirjasto ( TLB ) integroidaan suoritettavan tiedoston resurssien sisään. Lisäksi luodaan hyödyllisiä tietoja sisältäviä tiedostoja, kuten EXP ja LIB.
Visual Basic tarjoaa kielimahdollisuudet dynaamisten linkkikirjastojen (DLL) funktioiden ilmoittamiseen ja kutsumiseen. Tämän mekanismin avulla voit laajentaa sovelluksia käyttämällä muiden kehittäjien tarjoamia lisäkirjastoja, mukaan lukien eri ohjelmointikielillä kirjoitetut. Microsoft Windows -käyttöjärjestelmä tarjoaa yhden tällaisen kirjastojoukon.
Yleinen syntaksi funktiolle ja proseduurille on seuraava:
[ Julkinen | Yksityinen ] Ilmoita ali < menettelyn_nimi > lib "dynaaminen_kirjaston_nimi" [ Alias "alias" ] [ ( parametrit ) ] [ Julkinen | Yksityinen ] Ilmoita funktio < funktion_nimi > lib "dynaaminen_kirjaston_nimi" [ Alias "alias " ] [ ( parametrit ) ] [ paluutyyppinä ]Alias on määritettävä useissa tapauksissa: funktion nimessä käytetään Visual Basic -varattuja tunnisteita, nimi sisältää virheellisiä merkkejä tai ympäristö ei voi tulkita sitä oikein. Kutsuttujen funktioiden on tuettava StdCall - soittokäytäntöä .
Kun parametri, jonka merkkijonotyyppi on välitetty, WINAPI-funktiolle, VB muuntaa automaattisesti koodauksen Unicodesta ANSI:ksi, kun toiminto on suoritettu, käänteinen muunnos ANSI:sta Unicodeksi tapahtuu. Automaattisen merkkijonon muuntamisen estämiseksi funktion argumentit on määritettävä pitkiksi ja merkkijonoon on välitettävä osoitin funktiolla StrPtr, jolloin voidaan optimoida useita funktiokutsuja soittavan sovelluksen suorituskyky.
Esimerkki Windows API:n kutsumisesta saadakseen koko polun Windows-hakemistoon ja näyttääksesi viestin näytöllä:
Yksityinen Declare Function GetWindowsDirectory Lib "kernel32.dll" Alias "GetWindowsDirectoryA" ( ByVal puskuri merkkijonona , ByVal nSize As Long ) Pitkäksi Private Declare Function MessageBox Lib " user32.dll " Alias " MessageBox hWA " ( ByVal , ByVal lpText As String , ByVal lpCaption As String , ByVal wType As Long ) As Long Yksityinen Const MB_ICONASTERISK As Long = 64 Public Sub Main () Dim buffer As String 'Muuttuja, johon funktion tulos vastaanotetaan. Dim ret Len As Long puskuri = String ( 256 , vbNullChar ) linssi = GetWindowsDirectory ( puskuri , Len ( puskuri )) ' Funktion kutsupuskuri = Vasen ( puskuri , linssi ) MessageBox 0 & , "OS asennettu hakemistoon: " & puskuri , "Tiedot" , MB_ICONASTERISK ' Lopeta alitoimintokutsuOn syytä huomata, että WINAPI-funktioiden kutsuminen liittyy tiettyihin sisäisiin sopimuksiin, nimittäin siihen, kuinka funktio palauttaa tuloksen, mitä rakenteita sen on läpäistävä, kuinka monta argumenttia ja niiden tyypit sisältyvät palautusarvoon. Kehittäjät käyttävät kirjastojen mukana toimitettua teknistä dokumentaatiota toimintojen ja rakenteiden ilmoittamiseen.
Kieli on vahvasti sidottu kehitysympäristöönsä ja Microsoft Windows -käyttöjärjestelmään, koska se on yksinomaan Windows-sovellusten kirjoitustyökalu. Sitoutuminen ympäristöön on siinä, että ohjelmointia auttamaan ja helpottamaan suunniteltuja työkaluja on suuri määrä: sisäänrakennettu debuggeri, muuttujien ja tietorakenteiden katselu lennossa, debug-ikkuna, työkaluvinkit ohjelmaa kirjoitettaessa ( IntelliSense ). Kaikki nämä edut tekevät Visual Basicin käyttämisen hyödyttömäksi ja jopa mahdottomaksi kehitysympäristön ulkopuolella, esimerkiksi tavallisessa tekstieditorissa.
On kuitenkin syytä huomata, että kaikki kielen puutteet johtuvat sen pääedusta - graafisen käyttöliittymän kehittämisen yksinkertaisuudesta. Siksi monet ohjelmoijat käyttävät Visual Basicia käyttöliittymän kehittämiseen, ja ohjelman toiminnallisuus toteutetaan muilla kielillä kirjoitettuina dynaamisina linkkikirjastoina ( DLL ) (esimerkiksi C++ ).
Tämä kehitysympäristö ei käytännössä eroa klassisesta Visual Basicista, joka on suunniteltu makrojen ja muiden sovellusohjelmien kirjoittamiseen tiettyjä yrityssovelluksia varten. Sai suurimman suosion, koska se on käytetty Microsoft Office -paketissa . Visual Basic for Applications -sovelluksen laaja käyttö yhdistettynä tietoturvaongelmiin kiinnittämisen puutteeseen on johtanut laajalle levinneisiin makroviruksiin .
Ominaisuudet:
Komentosarjakieli , joka on hieman katkaistu versio tavallisesta Visual Basicista. Käytetään ensisijaisesti Microsoft Windows - järjestelmien hallinnan automatisointiin sekä ASP - sivujen ja komentosarjojen luomiseen Internet Explorerille .
Ominaisuudet:
Tätä työkalua käytetään ohjelmistojen kehittämiseen Windows CE - ja Windows Mobile - käyttöjärjestelmille . Sisältää IDE:n, debuggerin ja emulaattorin sovellusten testausta varten. eMbedded Visual Basic ei perustu täysin varusteltuun Visual Basic -ohjelmointikieleen, vaan Visual Basic Scripting Edition -skriptikieleen . Sovellukset käännetään P-koodiksi ja suoritettavilla tiedostoilla on tunniste VB, jotka liittyvät isäntäsovellukseen.
Ominaisuudet:
BASIC -ohjelmointikielen murteet | |
---|---|
Klassikko |
|
siirtymäkauden |
|
menettelyllinen |
|
Esine |
|
mobiili |
|
Konsoli |
|
Ohjelmointikielet | |
---|---|
|