A on vain kolme tapaa organisoida VB.NET sovellus.
- moduulit
- rakenteet
- Luokat
Mutta useimmissa teknisissä artikkeleissa oletetaan, että tiedät jo kaikki niistä. Jos olet yksi monista, joilla on vielä muutama kysymys, voit vain lukea hämmentävät bitit ja yrittää selvittää sen joka tapauksessa. Ja jos sinulla on erä ajan kuluessa, voit aloittaa etsimisen Microsoftin dokumentointi:
- "Moduuli on kannettava suoritettava tiedosto, kuten type.dll tai application.exe, joka koostuu yhdestä tai useammasta luokasta ja liittymistä."
- "Class-lause määrittelee uuden tietotyypin."
- "Rakennelause määrittelee muokattavan arvotyypin, jota voit mukauttaa."
No niin sitten. Kysymyksiä?
Ollakseen hieman oikeudenmukaisempi Microsoftin suhteen, heillä on sivuja ja sivuja (ja enemmän sivuja) tietoa kaikista näistä, jotka voit käydä läpi. Ja niiden on oltava mahdollisimman tarkkoja, koska ne asettavat standardin. Toisin sanoen Microsoftin dokumentaatio lukee joskus kuin lakikirja, koska se On lakikirja.
Mutta jos opit vain .NET, se voi olla hyvin hämmentävä! Sinun on aloitettava jostain. Hyvä lähtökohta on ymmärtää kolme perustapaa, joilla voit kirjoittaa koodin VB.NET-verkkoon.
Sinä voit kirjoittaa VB.NET koodi jollakin näistä kolmesta muodosta. Toisin sanoen voit luoda Konsolisovellus kirjoita VB.NET Expressiin ja kirjoita:
Moduuli moduuli1
Sub Main ()
MsgBox ("Tämä on moduuli!")
End Sub
Lopeta moduuli
Luokka luokka1
Sub Main ()
MsgBox ("Tämä on luokka")
End Sub
Loppu luokka
Rakenne Struct1
Himmennä myString merkkijonona
Sub Main ()
MsgBox ("Tämä on rakenne")
End Sub
Päätyrakenne
Tämä ei tee minkä tahansa mielestäsi ohjelma, tietysti. Asia on, että et saa syntaksivirhettä, joten se on "laillinen" VB.NET-koodi.
Nämä kolme muotoa ovat ainoa tapa koodata kaikkien .NET: n objektin kuningatar mehiläinen juuri. Ainoa elementti, joka keskeyttää kolmen muodon symmetrian, on lause: Himmennä myString merkkijonona. Sillä on yhteys rakenteeseen, joka on "yhdistelmädatatyyppi", kuten Microsoft toteaa määritelmässään.
Toinen huomioitava asia on, että kaikilla kolmella lohkolla on a Sub Main () heissä. Yksi OOP: n perustavanlaatuisimmista periaatteista kutsutaan yleensä kapselointi. Tämä on "mustan laatikon" vaikutus. Toisin sanoen sinun pitäisi pystyä käsittelemään kutakin objektia itsenäisesti, ja siihen sisältyy tarvittaessa identtisesti nimettyjen aliohjelmien käyttäminen.
Luokat
Tunnit ovat ”oikea” paikka aloittaa, koska, kuten Microsoft toteaa, "luokka on perusobjekti olio-ohjelmointiin (OOP)." Itse asiassa jotkut kirjoittajat käsittelevät moduuleja ja rakenteita vain erityyppisinä luokkina. Luokka on oliopohjaisempi kuin moduuli, koska se on mahdollista instantiate (tee kopio) luokasta, mutta ei moduulista.
Toisin sanoen, voit koodata ...
Julkisen luokan lomake1
Yksityinen alamuoto1_lataus (_
ByVal-lähettäjä järjestelmänä. Kohde, _
ByVal e As -järjestelmä. EventArgs) _
Käsittelee MyBasea. Ladata
Himmennä myNewClass luokka1 = Uusi luokka1
myNewClass. ClassSub ()
End Sub
Loppu luokka
(Luokan hetkellisyys korostetaan.)
Ei ole väliä onko itse luokka, tässä tapauksessa ...
Julkisen luokan luokka1
AlaluokkaSub ()
MsgBox ("Tämä on luokka")
End Sub
Loppu luokka
... on tiedosto itsessään tai on osa samaa tiedostoa Form1 koodi. Ohjelma toimii täsmälleen samalla tavalla. (Huomaa, että Form1 on luokka.)
Voit myös kirjoittaa luokan koodin, joka käyttäytyy paljon kuin moduuli, ts. Ilman, että sitä suoritetaan välittömästi. Tätä kutsutaan a Yhteiset luokka. VB.NET: n artikkeli "Staattinen" (eli "Jaettu") dynaamisiin tyyppeihin verrattuna selittää tämän paljon yksityiskohtaisemmin.
Myös toinen tosiasia luokista olisi pidettävä mielessä. Jäsenet luokan (ominaisuudet ja menetelmät) ovat olemassa vain luokan esiintymän ollessa olemassa. Tämän nimi on rajauksen. Tuo on laajuus luokan esiintymistä on rajoitettu. Yllä olevaa koodia voidaan muuttaa tämän havainnollistamiseksi seuraavasti:
Julkisen luokan lomake1
Yksityinen alamuoto1_lataus (_
ByVal-lähettäjä järjestelmänä. Kohde, _
ByVal e As -järjestelmä. EventArgs) _
Käsittelee MyBasea. Ladata
Himmennä myNewClass luokka1 = Uusi luokka1
myNewClass. ClassSub ()
myNewClass = Ei mitään
myNewClass. ClassSub ()
End Sub
Loppu luokka
Kun toinen myNewClass. ClassSub () lausunto suoritetaan, a NullReferenceException virhe heitetään, koska ClassSub jäsentä ei ole olemassa.
moduulit
VB 6: ssa oli yleistä nähdä ohjelmia, joissa suurin osa koodista oli moduulissa (A .bas, tiedosto eikä esimerkiksi a muoto tiedosto kuten Form1.frm.) VB.NET: ssä, sekä moduulit että luokat ovat .VB tiedostot. Tärkein syy siihen, että moduulit sisältyvät VB.NET-verkkoon, on antaa ohjelmoijille tapa organisoida järjestelmiään sijoittamalla koodi eri paikkoihin hienosäätääksesi niiden laajuutta ja pääsyä koodi. (Toisin sanoen kuinka kauan moduulin jäseniä on olemassa ja mikä muu koodi voi viitata ja käyttää jäseniä.) Joskus haluat ehkä laittaa koodin erillisiin moduuleihin vain helpottaaksesi työskentelyä.
Kaikki VB.NET-moduulit ovat Yhteiset koska niitä ei voida hetkellistää (katso yllä) ja ne voidaan merkitä ystävä tai Julkinen joten niihin pääsee joko samassa kokoonpanossa tai aina kun niihin viitataan.
rakenteet
Rakenteet ymmärretään vähiten esineiden kolmesta muodosta. Jos puhumme "eläimistä" "esineiden" sijasta, rakenne olisi Maasika.
Suuri ero rakenteen ja luokan välillä on, että rakenne on a arvon tyyppi ja luokka on viitetyyppi.
Mitä tuo tarkoittaa? Olen niin iloinen, että kysyit.
Arvotyyppi on objekti, joka tallennetaan suoraan muistiin. Kokonaisluku on hyvä esimerkki arvotyypistä. Jos ilmoitit Kokonaisluku ohjelmassasi näin ...
Himmennä myInt kokonaislukuna = 10
... ja tarkistit muistiin tallennetun sijainnin Myint, löydät arvon 10. Näet tämän myös kuvatuksi "allokoituna pinoon".
Pino ja kasa ovat yksinkertaisesti erilaisia tapoja hallita tietokoneen muistin käyttöä.
Viitetyyppi on objekti, jossa kohteen sijainti on tallennettu muistiin. Joten arvon löytäminen vertailutyypille on aina kaksivaiheinen haku. jono on hyvä esimerkki vertailutyypistä. Jos ilmoitit jono kuten tämä ...
Himmennä myString merkkijonona = "Tämä on myString"
... ja tarkistit muistiin tallennetun sijainnin myString, löydät toisen muistin sijainnin (kutsutaan a osoitin - tämä tapa toimia on C-tyypin kielten ydin). Sinun on mentävä kyseiseen sijaintiin löytääksesi arvon "Tämä on myString". Tätä kutsutaan usein "varaamiseksi kasaan". Pino ja kasa
Jotkut kirjoittajat sanovat, että arvotyypit eivät ole edes objekteja ja vain viitetyypit voivat olla kohteita. On varmasti totta, että hienostuneilla esineiden ominaisuuksilla kuten perinnöllä ja kapselointi ovat mahdollisia vain vertailutyypeillä. Mutta aloitimme koko tämän artikkelin sanomalla, että objekteja oli kolme lomaketta, joten minun on hyväksyttävä, että rakenteet ovat jonkinlainen esine, vaikka ne olisivatkin epästandardiobjekteja.
Rakenteiden ohjelmoinnin alkuperä juontaa takaisin tiedostokeskeisiä kieliä, kuten Cobol. Näillä kielillä tiedot käsiteltiin yleensä peräkkäisinä tasotiedostoina. Tiedoston tietueen "kentät" kuvailtiin "datan määritelmä" -osiossa (kutsutaan joskus "tietueen asetteluksi" tai "tekstikirjaksi"). Joten jos tiedostotietue sisälsi:
1234567890ABCDEF9876
Ainoa tapa tietää, että "1234567890" oli puhelinnumero, "ABCDEF" oli tunnus ja 9876 oli 98,76 dollaria. Rakenteet auttavat sinua saavuttamaan tämän VB.NET: ssä.
Rakenne Rakenne1
Päätyrakenne
Koska a jono on vertailutyyppi, on välttämätöntä pitää pituus samana VBFixedString kiinteän pituuden tietueiden määrite. Löydät tämän ominaisuuden ja yleensä sen ominaisuuksien laajennetun selityksen artikkelissa Attribuutit VB .NET.
Vaikka rakenteet ovat epätyypillisiä objekteja, niillä on paljon ominaisuuksia VB.NET: ssä. Voit koodata menetelmiä, ominaisuuksia ja jopa tapahtumia sekä tapahtumakäsittelijöitä rakenteissa, mutta voit käyttää myös yksinkertaisempaa koodia ja koska ne ovat arvotyyppejä, käsittely voi olla nopeampaa. Voit esimerkiksi koodata yllä olevan rakenteen seuraavasti:
Rakenne Rakenne1
Sub mySub ()
MsgBox ("Tämä on myPhone: n arvo:" & myPhone)
End Sub
Päätyrakenne
Ja käytä sitä näin:
Himmennä myStruct rakenteena1
myStruct.myPhone = "7894560123"
myStruct.mySub ()
Aikaa kannattaa pelata hiukan rakenteiden kanssa ja oppia mitä he voivat tehdä. Ne ovat yksi VB.NET-sivuston outoista kulmasta, joka voi olla taikuu, kun tarvitset sitä.