Toteutusliittymät VB.netissä

Mitä eroa vuosi tai kaksi voi tuoda. Kaksi ja puoli vuotta sitten ajattelin kirjoittavani kirjan nimeltä Visual Basic 7 Unleashed for Sams. Sams Visual Basic.Net Unleashedin lopullisten luonnosten täydentäminen muistuttaa, että Visual Basicissa on muuttunut paljon.

auttaakseni sinua tekemään siirtymisen mahdollisimman perusteellisesti ja täydellisesti minä ja muut kirjoittajat ja avustajat kirjoitamme paljon ketjuttamisesta, pohdinnasta, kokoonpanoista, Komista ja valtuutetuista. Mutta, tarkistamalla ohjelmointi aiheita ystävän kanssa äskettäin, minua muistutettiin, että on olemassa kehittäjiä kaikilla tasoilla, ei vain edistyneellä tasolla. Ollakseni mahdollisimman perusteellinen, tutkin edistyneitä aiheita sekä ei-edistyneitä aiheita. (Olen tyytyväinen kyselyt lukijoilta liian, ja joskus kirjoittaa artikkelin perustuu useisiin kyselyihin.)

tämä artikkeli on ytimekäs. Tässä artikkelissa tarkastelemme rajapintoja: miten ne määritellään ja miten ne toteutetaan.

ajatus käyttöliittymästä ei ole comille uusi, mutta Visual Basic 6: ssa jokainen luokka oli COM-käyttöliittymä. Visual Basic.NET jokainen luokka on luokka ja käyttöliittymä on käyttöliittymä, mutta ei COM-liitäntä. Luokat ovat olleet olemassa vuosikymmeniä ja rajapinnat eivät ole ainoa toimiala COM. Luokka kuvaa kentät, ominaisuudet, tapahtumat ja menetelmät tyyppi on. Käyttöliittymä on enemmän kuin portaali tai liite. Käyttöliittymä sanoo, että Tyyppi toteuttaa nämä erityiset menetelmät, mutta ei määrittele, mikä tyyppi on. Esimerkiksi talossa voi olla ikkuna, mutta niin voi olla autossakin. Tyyppi, joka toteuttaa menetelmän avoimena, voitaisiin määritellä sellaiseksi, jolla on ikkuna, mutta tyypit voisivat määritellä autot, veneet, talot tai sielun.

Visual Basic 6 ei tue periytymistä tai luokkia Konstruktion oliokeskeisessä merkityksessä. VB6 tukee COM-liittymiä. VB. NET, toisaalta tukee luokkia ja rajapintoja, joten kahden idiomin välillä oli tehtävä ero.

luokkien ja rajapintojen määrittely VB.netissä

luokka-ja rajapintadiomit käyttävät hyvin samanlaista syntaksia niitä määriteltäessä. Seuraavassa esimerkissä määritellään VB.NET: ssä tyhjä luokka, jota seuraa tyhjä käyttöliittymä.

Public Class AClassEnd ClassPublic Interface AnInterfaceEnd Interface

luokat voivat sisältää kenttiä, ominaisuuksia, tapahtumia ja menetelmiä. Näillä luokan elementeillä, joita kutsutaan jäseniksi, voi olla modifikaatioita, jotka osoittavat, että he ovat julkisia, yksityisiä, suojattuja tai ystäviä. Kaikki käyttöliittymäilmoituksen jäsenet ovat julkisia, eivätkä he siksi tarvitse eivätkä voi käyttää käyttöoikeusmodifioijia.

luokat sisältävät koodin, liitännät eivät. Käyttöliittymän toteuttavat luokat sisältävät kuitenkin koodia. Muista, että ei ole olemassa esiintymiä rajapintoja VB. NET. Jokainen instanssi on tyyppi, joka toteuttaa rajapinnan, mutta ei itse ole rajapinnan instanssi. (Tästä eteenpäin jätämme luokkien keskustelun toiseen kertaan ja keskitymme vain rajapintoihin.)

Implementing Interfaces

olettaen, että meillä on interface-niminen rajapinta, voimme vain lisätä menetelmäilmoituksia kyseiseen rajapintaan. Laajentaminen käyttöliittymä edellisestä osasta, voimme lisätä menetelmän nimeltä WhoAmI. Tulos näytetään seuraavaksi.

Public Interface AnInterface Function WhoAmI() As StringEnd Interface

kaikkien tyyppien, jotka toteuttavat rajapinnan, on toteutettava kaikki ilmoitetut menetelmät kyseisessä rajapinnassa. Tässä esimerkissä meidän tarvitsee vain toteuttaa funktio WhoAmI. Oletetaan AClass toteuttaa AnInterface; meidän olisi toteutettava WhoAmI. Tulos toteuttaa AnInterface Aclass tuottaisi seuraavan koodin.

Public Class AClass Implements AnInterface Public Function WhoAmI() As String Implements AnInterface.WhoAmI Return "AClass" End FunctionEnd Class

ensimmäiseksi on ilmoitettava, että haluamme toteuttaa rajapinnan nimeltä. Toteuttaa interface kertoo kuluttajille, että AClass toteuttaa kaikki kuvatut menetelmät interface. (Visual Studio. Net IDE muistuttaa, että niin on myös tehtävä.)

VB6: n ja VB: n välinen ero .NET on, että meidän on lisättävä toteuttaa lauseke funktio elin kuten listaus. Funktio julistetaan normaaliksi, mutta lauseke toteuttaa Interfacen.WhoAmI täydentää luokan ja käyttöliittymän välisen sopimuksen.

lopulliset ajatukset

rakenteet voivat toteuttaa rajapintoja VB.NET samoin. Olipa luokka tai rakenne toteuttaa rajapinta, tarvitset toteuttaa lauseke osoitettuna, ja sinun täytyy toteuttaa jokainen menetelmä määritelty rajapinnassa käyttäen toteuttaa lauseke lopussa menettelyn otsikko osoittaa, että tietty menetelmä täyttää tietyn rajapinnan menetelmä.

rajapinnat voivat olla hyvin lyhyitä tai hyvin pitkiä. Käyttöliittymän kuvaamat menetelmät voivat olla aliohjelmia tai toimintoja, ja ne voivat olla niin monimutkaisia tai yksinkertaisia kuin tarvitset. Yhdellä menetelmällä voidaan toteuttaa useampi kuin yksi rajapintamenetelmä. Lopuksi kannattaa muistaa, että rajapintamenetelmiä voidaan kutsua viittauksella objektiin tai viittauksella rajapintaan.

tekijästä

Paul Kimmel on freelance-kirjailija Developer.com ja CodeGuru.com. Look For cool Visual Basic. Net aiheita hänen tulevan kirjan Visual Basic. Net Unleashed saatavilla tammikuussa 2002.

Paul perusti Software Conceptions, Inc. vuonna 1990. Ota yhteyttä Paul Kimmel for help building VB.NET sovellukset tai VB6-sovellusten siirtäminen. Netiin.

# # #

Write a Comment

Sähköpostiosoitettasi ei julkaista.