Implementere Grensesnitt I VB. NET

hvilken forskjell et år eller to kan bringe. For to og et halvt år siden trodde jeg at Jeg skulle skrive En bok med Tittelen Visual Basic 7 Unleashed for Sams. Net Unleashed minner meg om at Mye har endret Seg I Visual Basic.

for å hjelpe deg med å gjøre overgangen så grundig og så fullstendig som mulig, skriver jeg og andre forfattere og bidragsytere mye om tråder, refleksjon, forsamlinger, COM interop og delegater. Men, gjennomgå programmering fag med en venn nylig, ble jeg minnet om at det er utviklere på alle nivåer, ikke bare avansert nivå. For å være så grundig som mulig, utforsker jeg avanserte emner så vel som ikke-avanserte emner. (Jeg tar imot spørsmål fra leserne også, og noen ganger skriver en artikkel basert på flere spørsmål.)

denne artikkelen er til poenget. I denne artikkelen vil vi undersøke grensesnitt: hvordan du definerer dem og hvordan du implementerer dem.

ideen om et grensesnitt er ikke nytt FOR COM, men I Visual Basic 6 var hver klasse ET com-grensesnitt. I Visual Basic .NET hver klasse er en klasse og et grensesnitt er et grensesnitt, men ikke ET com-grensesnitt. Klasser har eksistert i flere tiår, og grensesnitt er IKKE DEN eneste purview AV COM. En klasse beskriver feltene, egenskapene, hendelsene og metodene en type vil ha. Et grensesnitt er mer som en portal eller et vedlegg. Et grensesnitt sier at en type vil implementere disse spesifikke metodene, men definerer ikke hva en type er. For eksempel kan et hus ha Et Vindu, men det kan også en bil. En type som implementerer en metode åpen kan defineres som noe som har Et Vindu, men typene kan definere biler, båter, hus eller sjelen.

Visual Basic 6 støtter ikke arv eller klasser i objektorientert forstand av konstruksjonen. VB6 støtter COM-grensesnitt. VB. NET, på den andre støtter klasser og grensesnitt, så en distinguishment måtte gjøres mellom de to idiomer.

Definere Klasser OG Grensesnitt I VB. NET

klassen og grensesnitt idiomer bruker en svært lik syntaks når du definerer dem. Følgende eksempel definerer en tom klasse I VB. NET, etterfulgt av et tomt grensesnitt.

Public Class AClassEnd ClassPublic Interface AnInterfaceEnd Interface

Klasser kan inneholde felt, egenskaper, hendelser og metoder. Disse elementene i en klasse, kalt medlemmer, kan ha modifikatorer som indikerer at de er offentlige, private, beskyttede eller venner. Alle medlemmer av en grensesnittdeklarasjon er offentlige, og som et resultat trenger de ikke eller kan de ha tilgangsmodifikatorer.

Klasser inneholder kode; grensesnitt gjør det ikke. Klasser som implementerer et grensesnitt inneholder imidlertid kode. Husk at det ikke er noen forekomster av grensesnitt I VB. NET. Hver forekomst er en type som implementerer et grensesnitt, men er i seg selv ikke en forekomst av grensesnittet. (Fra dette punktet vil vi forlate diskusjonen av klasser for en annen gang og fokusere bare på grensesnitt.)

Implementere Grensesnitt

Forutsatt at vi har et grensesnitt som heter AnInterface, kan vi bare legge til metodedeklarasjoner til det grensesnittet. Utvide grensesnittet fra forrige avsnitt, kan vi legge Til en metode som heter WhoAmI. Resultatet vises neste.

Public Interface AnInterface Function WhoAmI() As StringEnd Interface

Alle typer Som implementerer AnInterface-grensesnittet, må implementere alle deklarerte metoder i dette grensesnittet. I dette eksemplet trenger vi bare å implementere funksjonen WhoAmI. Anta At AClass implementerer AnInterface; vi må implementere WhoAmI. Resultatet av implementere AnInterface I AClass ville gi følgende kode.

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

det første vi må gjøre er å indikere at vi vil implementere grensesnittet etter navn. Implementerer AnInterface forteller forbrukerne At AClass vil implementere alle metodene beskrevet I AnInterface. (Visual Studio. NET IDE minner oss om at vi må gjøre det også .)

forskjellen MELLOM VB6 og VB .NETTO er at vi må legge Til Implementeringsklausulen til funksjonskroppen som vist i oppføringen. Funksjonen er erklært som normal, men klausulen Implementerer AnInterface.WhoAmI fullfører kontrakten mellom klassen og grensesnittet.

Avsluttende Tanker

Strukturer kan implementere grensesnitt i VB.NET også. Enten en klasse eller en struktur implementerer et grensesnitt, trenger Du Implementeringserklæringen som demonstrert, og du må implementere alle metoder som er definert i grensesnittet ved hjelp Av Implementeringsklausulen på slutten av prosedyrehodet for å indikere at en bestemt metode tilfredsstiller en bestemt grensesnittmetode.

Grensesnitt kan være svært korte eller svært lange. Metoder beskrevet av et grensesnitt kan være subrutiner eller funksjoner, og de kan være så forseggjort eller så enkelt som du trenger dem til å være. En metode kan implementere mer enn en grensesnittmetode. Til slutt, husk at grensesnittmetoder kan kalles med en referanse til objektet eller med en referanse til grensesnittet.

Om Forfatteren

Paul Kimmel er frilansskribent for Developer.com og CodeGuru.com. Se etter kule Visual Basic. Net-emner i sin kommende bok Visual Basic. Net Unleashed tilgjengelig i januar 2002.

Paul grunnla Software Conceptions, Inc. i 1990. Kontakt Paul Kimmel på for hjelp bygningen VB.NET programmer eller migrere VB6-programmer TIL. NET.

# # #

Write a Comment

Din e-postadresse vil ikke bli publisert.