Ülevaade osalistest klassidest Visual Basic .NET-is

Osalised klassid on VB.NETi funktsioon, mida kasutatakse peaaegu kõikjal, kuid sellest pole palju kirjutatud. Selle põhjuseks võib olla asjaolu, et selle jaoks pole veel ilmselgeid arendajarakendusi. Peamine kasutusviis on viis, kuidas ASP.NET ja VB.NET lahendused luuakse Visual Stuudios, kus see on üks neist funktsioonidest, mis on tavaliselt "peidetud".

Osaline klass on lihtsalt klassi määratlus, mis jaguneb mitmeks füüsiliseks failiks. Osalised klassid ei muuda kompilaatorit vahet, sest kõik klassi moodustavad failid liidetakse kompilaatori jaoks lihtsalt ühte olemiks. Kuna klassid on lihtsalt ühendatud ja kokku pandud, ei saa te keeli segada. See tähendab, et teil ei saa olla ühte osalist klassi C # -s ja teist VB-s. Samuti ei saa osaliste klassidega komplekte spandada. Nad kõik peavad olema samas koosseisus.

Visual Studio ise kasutab seda palju, eriti veebilehtedel, kus see on võtmekontseptsioon failide "kood taga". Näeme, kuidas see Visuaalstuudios töötab, kuid hea lähtepunkt on aru saada sellest, mis Visual Stuudios 2005 selle tutvustamisel muutus.

instagram viewer

Visual Studio 2003 programmis oli Windowsi rakenduse "varjatud" kood jaotises Regioon, mille tähis oli "Windows Form Designeri loodud kood". Kuid see oli kõik samas failis olemas ja piirkonna koodi oli lihtne vaadata ja muuta. Kõik koodi on teie rakendusele saadaval .NET-is. Kuid kuna osa sellest on kood, mida peaksite Kunagi ei sega, seda hoiti selles varjatud piirkonnas. (Piirkondi saab endiselt kasutada oma koodi jaoks, kuid Visual Studio ei kasuta neid enam.)

Visual Studio 2005 (Framework 2.0) puhul tegi Microsoft umbes sama, kuid nad varjasid koodi teises kohas: osalise klassi eraldi failis. Seda näete allpool oleva illustratsiooni allosas:


Illustratsiooni kuvamiseks klõpsake siin
Naasmiseks klõpsake brauseri nupul Tagasi

Üks Visual Basicu ja C # vahel olevatest süntaksierinevustest on see, et C # nõuab seda kõik osalised klassid kvalifitseeritakse märksõnaga Osaline aga VB seda ei tee. Teie põhivormil VB.NET-is puuduvad spetsiaalsed kvalifikaatorid. Kuid tühja Windowsi rakenduse vaikeklassi väljavõte näeb välja, kasutades klahvi C #:

avalik osaline klass Vorm1: vorm

Microsofti disainivalikud sellistes asjades on huvitavad. Kui Microsofti VB-disainer Paul Vick selle disainivaliku kohta oma ajaveebis kirjutas Panopticon Central, läks selle üle kommentaarides arutelu lehtede ja lehtede üle.

Vaatame, kuidas see kõik järgmisel lehel päris koodiga töötab.

Eelmisel lehel selgitati osaliste klasside mõistet. Teisendame selle lehe ühe klassi kaheks osaliseks klassiks.

Siin on näiteklass ühe meetodi ja ühe atribuudiga VB.NET-projektis

 Avaliku klassi kombineeritud klass. Privaatne m_Property1 kui string. Avalik alam uus (ByVal väärtus kui string) m_Property1 = väärtus. Lõpu alam. Avalik alammeetod1 () MessageBox. Kuva (m_Property1) Lõpp alam. Kinnisvara Vara1 () keelpillina. Saage. Tagasta m_Property1. Lõpp saada. Määra (ByVal väärtus kui string) m_Property1 = väärtus. End Set. Lõppomand. Lõpuklass 

Seda klassi saab kutsuda (näiteks nupu objekti klõpsamise sündmuse koodis) koodiga:

Dim ClassInstance as New _. CombinedClass ("Visual Basicu osaliste klasside kohta") ClassInstance. 1. meetod ()

Klassi atribuudid ja meetodid saame eraldada erinevateks füüsilisteks failideks, lisades projektile kaks uut klassi faili. Pange esimesele füüsilisele failile nimi Osaline.meetodid.vb ja nimetage teine Osaline.omandid.vb. Füüsilised failinimed peavad olema erinevad, kuid osalised klasside nimed peavad olema samad, et Visual Basic saaks koodi kompileerimisel neid ühendada.

See ei ole süntaksinõue, kuid enamik programmeerijaid järgib Visual Studio näites, kuidas nendes klassides kasutatakse punktiirnimesid. Näiteks Visual Studio kasutab vaikenime Vorm1.Disainer.vb osalise klassi jaoks Windowsi vormi jaoks. Ärge unustage lisada iga klassi osaline märksõna ja muuta sisemine klassi nimi (mitte faili nimi) samale nimele. Kasutasin sisemise klassi nime: Osaline klass.

Alloleval joonisel on näidatud kogu näite kood ja toimiv kood.


Illustratsiooni kuvamiseks klõpsake siin
Naasmiseks klõpsake brauseri nupul Tagasi

Visual Studio "peidab" osalised klassid, näiteks vorm1.Designer.vb. Järgmisel lehel õpime, kuidas seda teha äsja loodud osaliste klassidega.

Eelmistel lehtedel selgitatakse osaliste klasside mõistet ja näidatakse, kuidas neid kodeerida. Kuid Microsoft kasutab Visual Studio loodud osaliste klassidega veel ühte trikki. Nende kasutamise üheks põhjuseks on rakenduse loogika eraldamine kasutajaliidese (UI) koodist. Suures projektis võivad need kahte tüüpi koodi luua isegi erinevad meeskonnad. Kui need on eri failides, saab neid palju paindlikumalt luua ja värskendada. Kuid Microsoft läheb veel ühe sammu ja peidab osalise koodi ka rakenduses Solution Explorer. Oletame, et tahtsime selles projektis varjata osaliste klasside meetodeid ja omadusi? On olemas viis, kuid see pole ilmne ja Microsoft ei ütle teile, kuidas.

Üks põhjus, miks te ei näe Microsofti soovitatud osaliste klasside kasutamist, on see, et Visual Studio seda ei toetata veel eriti hästi. Näiteks äsja loodud klasside Partial.methods.vb ja Partial.properties.vb peitmiseks on vaja muuta vbproj faili. See on XML-fail, mis isegi ei kuvata rakenduses Solution Explorer. Leiate selle koos teiste failidega Windows Exploreriga. Vbproj-fail on näidatud alloleval joonisel.


Illustratsiooni kuvamiseks klõpsake siin
Naasmiseks klõpsake brauseri nupul Tagasi

Kuidas me seda teeme, on lisada täiesti tühi "juur" klass (alles on jäänud ainult klassi päis ja lõppklassi lause) ning muuta mõlemad meie osalised klassid sellest sõltuvaks. Nii et lisage veel üks klass nimega PartialClassRoot.vb ja muutke sisenimi jälle osaliseks, et see vastaks kahele esimesele. Seekord on mitte kasutas osalist märksõna lihtsalt selleks, et Visual Studio seda teeks.

Siin on kasu väikestest teadmistest XML-i kohta. Kuna seda faili tuleb käsitsi värskendada, peate saama XML-i süntaksi õigeks. Faili saate redigeerida mis tahes ASCII-tekstiredaktoris - Notepad töötab suurepäraselt - või XML-redaktoris. Selgub, et teil on Visual Stuudios suurepärane ja see on see, mida on näidatud alloleval joonisel. Kuid faili vbproj ei saa redigeerida samal ajal, kui redigeerite projekti, milles see on. Nii et sulgege projekt ja avage ainult vbproj-fail. Te peaksite nägema redigeerimisaknas kuvatud faili, nagu on näidatud alloleval joonisel.

(Pange tähele Kompileeri elemendid iga klassi jaoks. SõltuvUpon alamelemendid tuleb lisada täpselt nii, nagu on näidatud alloleval joonisel. See illustratsioon loodi VB 2005, kuid seda on testitud ka VB 2008-s.)


Illustratsiooni kuvamiseks klõpsake siin
Naasmiseks klõpsake brauseri nupul Tagasi

Paljudele meist piisab ilmselt teadmisest, et osalised klassid on olemas, lihtsalt selleks, et me teaksime, mis need on, kui proovime tulevikus mõnda viga leida. Suurte ja keerukate süsteemide arendamiseks võivad need olla väike ime, sest need aitavad koodi korraldada viisil, mis enne oleks olnud võimatu. (Teil võivad olla ka osalised struktuurid ja osalised liidesed!) Kuid mõned inimesed on jõudnud järeldusele, et Microsoft leiutas need just sisemistel põhjustel - nende koodide genereerimise paremaks toimimiseks. Autor Paul Kimmel läks isegi nii kaugele, et tegi ettepaneku, et Microsoft lõi tegelikult osalised klassid, et vähendada kulusid, muutes arendustööde allhanke kogu maailmas lihtsamaks.

Võib olla. See on selline asi, mida nad teha võivad.

instagram story viewer