Oversigt over delklasser i Visual Basic .NET

click fraud protection

Partial Classes er en funktion af VB.NET, der bruges næsten overalt, men der er ikke meget skrevet om det. Dette kan skyldes, at der endnu ikke er mange åbenlyse "udvikler" -applikationer til det. Den primære anvendelse er i den måde, ASP.NET og VB.NET-løsninger oprettes i Visual Studio, hvor det er en af ​​disse funktioner, der normalt "skjules".

En delklasse er simpelthen en klassedefinition, der er opdelt i mere end en fysisk fil. Delklasser gør ikke en forskel for kompilatoren, fordi alle de filer, der udgør en klasse, simpelthen er fusioneret til en enkelt enhed for compileren. Da klasserne bare er samlet og samlet, kan du ikke blande sprog. Det vil sige, du kan ikke have en delklasse i C # og en anden i VB. Du kan heller ikke spænde samlinger med delklasser. De skal alle være i samme samling.

Dette bruges meget af Visual Studio selv, især på websider, hvor det er et nøglekoncept i "kode bag" filer. Vi får se, hvordan dette fungerer i et Visual Studio, men at forstå, hvad der ændrede sig i Visual Studio 2005, da det blev introduceret, er et godt udgangspunkt.

instagram viewer

I Visual Studio 2003 var den "skjulte" kode for en Windows-applikation alt i et afsnit, der kaldes en region markeret "Windows Form Designer-genereret kode". Men det var stadig alt sammen i den samme fil, og det var let at se og ændre koden i regionen. Alle af koden er tilgængelig for din applikation i .NET. Men da noget af det er kode, du skal aldrig rod med, det blev opbevaret i den skjulte region. (Regioner kan stadig bruges til din egen kode, men Visual Studio bruger dem ikke længere.)

I Visual Studio 2005 (Framework 2.0) gjorde Microsoft omtrent den samme ting, men de skjulte koden på et andet sted: en delklasse i en separat fil. Du kan se dette nederst på illustrationen nedenfor:


Klik her for at vise illustrationen
Klik på knappen Tilbage i din browser for at vende tilbage

En af syntaksforskellene mellem Visual Basic og C # lige nu er, at C # kræver det alle delklasser kvalificeres med nøgleordet Delvis men VB gør det ikke. Din vigtigste form i VB.NET har ingen specielle kvalifikationer. Men standardklassen for et tomt Windows-program ser sådan ud ved hjælp af C #:

offentlig delklasse Form1: Form

Microsofts designvalg af ting som dette er interessante. Da Paul Vick, Microsofts VB-designer, skrev om dette designvalg i sin blog Panopticon Central, debatten om det i kommentarerne fortsatte for sider og sider.

Lad os se, hvordan alt dette fungerer med reel kode på næste side.

På den forrige side blev begrebet delklasser forklaret. Vi konverterer en enkelt klasse til to delklasser på denne side.

Her er en eksempelklasse med en metode og en egenskab i et VB.NET-projekt

 Public Class CombinedClass. Privat m_Property1 Som streng. Offentlig sub-ny (ByVal-værdi som streng) m_Property1 = Værdi. Afslut under. Public Sub Method1 () MessageBox. Show (m_Property1) End Sub. Ejendom Ejendom1 () Som streng. Få. Returner m_Property1. Slut Get. Sæt (ByVal-værdi som streng) m_Property1 = værdi. Afslut sæt. Slut ejendom. Slutteklasse 

Denne klasse kan kaldes (f.eks. I Click-begivenhedskoden for et knap-objekt) med koden:

Dim ClassInstance As New _. CombinedClass ("Om Visual Basic Partial Classes") ClassInstance. Metode 1 ()

Vi kan opdele klassens egenskaber og metoder i forskellige fysiske filer ved at tilføje to nye klassefiler til projektet. Navngiv den første fysiske fil Partial.methods.vb og navngiv den anden Partial.properties.vb. De fysiske filnavne skal være forskellige, men delklassenavnene vil være de samme, så Visual Basic kan flette dem, når koden er samlet.

Det er ikke et syntaksbehov, men de fleste programmerere følger eksemplet i Visual Studio med at bruge "prikkede" navne til disse klasser. For eksempel bruger Visual Studio standardnavnet Form1.Designer.vb for delklassen for en Windows-form. Husk at tilføje det delvise nøgleord for hver klasse og ændre det interne klassens navn (ikke filnavnet) til det samme navn. Jeg brugte det interne klassens navn: PartialClass.

Illustrationen herunder viser alle koder til eksemplet og koden i handling.


Klik her for at vise illustrationen
Klik på knappen Tilbage i din browser for at vende tilbage

Visual Studio "skjuler" delklasser som Form1.Designer.vb. På næste side lærer vi, hvordan man gør det med de delklasser, vi netop har oprettet.

De foregående sider forklarer begrebet delklasser og viser, hvordan man koder dem. Men Microsoft bruger endnu et trick med de delklasser, der er genereret af Visual Studio. En af grundene til at bruge dem er at adskille applikationslogik fra UI-kode (brugergrænseflade). I et stort projekt kan disse to typer koder endda oprettes af forskellige hold. Hvis de findes i forskellige filer, kan de oprettes og opdateres med meget mere fleksibilitet. Men Microsoft går endnu et skridt og skjuler også den delvise kode i Solution Explorer. Antag, at vi ville skjule metoderne og egenskaberne delklasser i dette projekt? Der er en måde, men det er ikke indlysende, og Microsoft fortæller dig ikke, hvordan.

En af grundene til, at du ikke ser brugen af ​​delklasser, der er anbefalet af Microsoft, er, at det ikke rigtig understøttes særlig godt i Visual Studio endnu. For at skjule klasserne Partial.methods.vb og Partial.properties.vb, som vi netop har oprettet, kræves det for eksempel en ændring i vbproj fil. Dette er en XML-fil, der vises ikke engang i Solution Explorer. Du kan finde det med Windows Stifinder sammen med dine andre filer. En vbproj-fil vises på illustrationen herunder.


Klik her for at vise illustrationen
Klik på knappen Tilbage i din browser for at vende tilbage

Den måde, vi vil gøre dette på, er at tilføje en "root" -klasse, der er helt tom (kun klassens overskrift og slutklassen er tilbage) og gøre begge vores delklasser afhængige af det. Så tilføj en anden klasse navngivet PartialClassRoot.vb og igen ændre det interne navn til PartialClass for at matche de to første. Denne gang har jeg det ikke brugte delvis nøgleord bare for at matche den måde Visual Studio gør det.

Her er hvor lidt kendskab til XML vil komme meget praktisk. Da denne fil skal opdateres manuelt, skal du få XML-syntaks til højre. Du kan redigere filen i en hvilken som helst ASCII-teksteditor - Notepad fungerer helt fint - eller i en XML-editor. Det viser sig, at du har en stor en i Visual Studio, og det er, hvad der er vist på illustrationen herunder. Men du kan ikke redigere vbproj-filen på samme tid, som du redigerer det projekt, den er i. Så luk projektet og åbn kun vbproj-filen. Du skal se filen vises i redigeringsvinduet som vist på illustrationen herunder.

(Bemærk Udarbejde elementer til hver klasse. Afhængig af underelementer skal tilføjes nøjagtigt som vist på nedenstående illustration. Denne illustration blev oprettet i VB 2005, men den er også testet i VB 2008.)


Klik her for at vise illustrationen
Klik på knappen Tilbage i din browser for at vende tilbage

For mange af os er det sandsynligvis nok at vide, at delklasser er der, bare så vi ved, hvad de er, når vi prøver at finde en fejl i fremtiden. Ved stor og kompleks systemudvikling kan de være et lille mirakel, fordi de kan hjælpe med at organisere kode på måder, der ville have været umuligt før. (Du kan også have delvise strukturer og delvise grænseflader!) Men nogle mennesker har konkluderet, at Microsoft opfandt dem bare af interne grunde - for at få deres kodegenerering til at fungere bedre. Forfatter Paul Kimmel gik endda så langt som at antyde, at Microsoft faktisk oprettede delklasser for at sænke deres omkostninger ved at gøre det lettere at outsource udviklingsarbejde rundt om i verden.

Måske. Det er den slags ting, de muligvis gør.

instagram story viewer