„Visual Basic .NET“ dalinių klasių apžvalga

Dalinės klasės yra VB.NET funkcija, naudojama beveik visur, tačiau apie ją nėra daug parašyta. Taip gali būti todėl, kad dar nėra daug akivaizdžių „kūrėjų“ programų. Pagrindinis būdas yra ASP.NET ir VB.NET sprendimų kūrimas „Visual Studio“, kur tai yra viena iš tų funkcijų, kurios paprastai yra „paslėptos“.

Dalinė klasė yra tiesiog klasės apibrėžimas, suskaidytas į daugiau nei vieną fizinį failą. Dalinės klasės neturi reikšmės kompiliatoriui, nes visi failai, kurie sudaro klasę, yra tiesiog sujungiami į vieną kompiliatoriaus esmę. Kadangi klasės yra tiesiog sujungtos ir sudarytos, negalima maišyti kalbų. Tai yra, jūs negalite turėti vienos dalinės klasės C #, o kitos - VB. Negalite pratęsti komplektų su dalinėmis klasėmis. Jie visi turi būti tame pačiame susirinkime.

Tai labai naudoja pati „Visual Studio“, ypač tinklalapiuose, kur tai yra pagrindinė „kodo už“ failų sąvoka. Pamatysime, kaip tai veikia „Visual Studio“, tačiau suprasti, kas pasikeitė „Visual Studio 2005“, kai ji buvo pristatyta, yra geras atspirties taškas.

instagram viewer

Visual Studio 2003 „Windows“ programos „paslėptas“ kodas buvo skyriuje, pavadinimu Regionas, pažymėtu „Windows Form Designer sukurtu kodu“. Bet tai vis tiek buvo tame pačiame faile ir buvo lengva peržiūrėti bei pakeisti kodą regione. Visi kodo jūsų programai galite rasti .NET. Bet kadangi kai kurie iš jų yra kodai, kuriuos turėtumėte niekada nesutariau, jis buvo laikomas tame paslėptame regione. (Regionus vis dar galima naudoti pagal savo kodą, bet „Visual Studio“ jų daugiau nenaudoja.)

„Visual Studio 2005“ („Framework 2.0“) „Microsoft“ padarė maždaug tą patį, tačiau jie kodą slėpė kitoje vietoje: dalinėje klasėje atskirame faile. Tai galite pamatyti iliustracijos apačioje:


Spustelėkite čia, norėdami pamatyti iliustraciją
Norėdami grįžti, spustelėkite naršyklės mygtuką Atgal

Vienas iš „Visual Basic“ ir „C #“ sintaksės skirtumų šiuo metu yra tas, kad C # to reikalauja visi dalinės klasės turi būti kvalifikuotos pagal raktinį žodį Dalinis bet V. B. to nedaro. Jūsų pagrindinė forma VB.NET neturi jokių specialių kvalifikacijų. Bet numatytasis klasės teiginys tuščiai „Windows“ programai atrodo taip, naudojant C #:

viešoji dalinė klasė 1 forma: forma

„Microsoft“ dizaino pasirinkimas tokiems dalykams yra įdomus. Kai Paulius Vikas, „Microsoft“ VB dizaineris, rašė apie šį dizaino pasirinkimą savo tinklaraštyje „Panopticon Central“, diskusijos apie tai komentaruose vyko puslapiuose ir puslapiuose.

Pažiūrėsime, kaip visa tai veikia su tikru kodu kitame puslapyje.

Ankstesniame puslapyje buvo paaiškinta dalinių klasių sąvoka. Šiame puslapyje vieną klasę paverčiame į dvi dalines klases.

Čia yra pavyzdinis klasė su vienu metodu ir viena ypatybe VB.NET projekte

 Visuomenės klasės kombinuota klasė. Asmeninis „m_Property1“ kaip eilutė. „Public Sub New“ („ByVal“ vertė kaip eilutė) m_Property1 = vertė. Pabaigos poskyris. 1 viešasis antrinis metodas () „MessageBox“. Rodyti („m_Property1“) Pabaigos dalis. Nuosavybė Nuosavybė1 () kaip eilutė. Gaukite. Grąžinti m_Property1. Pabaiga gauti. Nustatyti („ByVal“ reikšmė kaip eilutė) m_Property1 = vertė. Pabaigos rinkinys. Pabaigos nuosavybė. Pabaigos klasė 

Ši klasė gali būti vadinama (pavyzdžiui, mygtuko objekto paspaudimo įvykio kode) su kodu:

Dim ClassInstance as New _. „CombinedClass“ („Apie„ Visual Basic “dalines klases) „ClassInstance“. 1 metodas ()

Priskirdami du naujus klasės failus projektui, klasės ypatybes ir metodus galime atskirti į skirtingus fizinius failus. Pavadinkite pirmąją fizinę bylą Dalinis.metodai.vb ir pavadink antrą Dalinis.properties.vb. Fizinių failų pavadinimai turi būti skirtingi, tačiau daliniai klasių pavadinimai bus vienodi, kad „Visual Basic“ galėtų juos sujungti, kai bus sudarytas kodas.

Tai nėra sintaksės reikalavimas, tačiau dauguma programuotojų seka „Visual Studio“ pavyzdžiu, kai šioms klasėms naudojami „taškiniai“ pavadinimai. Pvz., „Visual Studio“ naudoja numatytąjį pavadinimą Forma1.Dizaineris.vb dalinai klasei, skirtai „Windows“ formai. Nepamirškite pridėti kiekvienos klasės dalinio raktinio žodžio ir pakeiskite vidinį klasės pavadinimą (ne failo pavadinimą) tuo pačiu pavadinimu. Aš naudojau vidinį klasės pavadinimą: Dalinė klasė.

Žemiau pateiktoje iliustracijoje parodytas visas pavyzdžio kodas ir veikiantis kodas.


Spustelėkite čia, norėdami pamatyti iliustraciją
Norėdami grįžti, spustelėkite naršyklės mygtuką Atgal

„Visual Studio“ „slepia“ dalines klases, tokias kaip „Form1.Designer.vb“. Kitame puslapyje mes išmokome tai padaryti su dalinėmis klasėmis, kurias ką tik sukūrėme.

Ankstesniuose puslapiuose paaiškinta dalinių klasių sąvoka ir parodoma, kaip jas koduoti. Tačiau „Microsoft“ naudoja dar vieną triuką su „Visual Studio“ sugeneruotomis dalinėmis klasėmis. Viena iš jų naudojimo priežasčių yra atskirti programos logiką nuo vartotojo sąsajos (vartotojo sąsajos) kodo. Dideliame projekte šias dvi kodo rūšis gali sukurti net skirtingos komandos. Jei jie yra skirtinguose failuose, juos galima sukurti ir atnaujinti daug lanksčiau. Tačiau „Microsoft“ žengia dar vieną žingsnį ir paslepia dalinį kodą ir „Solution Explorer“. Tarkime, kad norėjome paslėpti šio projekto metodus ir savybes dalinėse klasėse? Yra būdas, tačiau tai nėra akivaizdu ir „Microsoft“ jums nenurodo, kaip tai padaryti.

Viena iš priežasčių, kodėl nematote „Microsoft“ rekomenduojamų dalinių klasių, yra ta, kad ji vis dar nėra labai palaikoma „Visual Studio“. Pavyzdžiui, norint paslėpti ką tik sukurtas „Partial.methods.vb“ ir „Partial.properties.vb“ klases, reikia pakeisti vbproj byla. Tai yra XML failas, kuris net nerodomas „Solution Explorer“. Jį galite rasti naudodami „Windows Explorer“ kartu su kitais savo failais. „Vbproj“ failas parodytas žemiau pateiktoje iliustracijoje.


Spustelėkite čia, norėdami pamatyti iliustraciją
Norėdami grįžti, spustelėkite naršyklės mygtuką Atgal

Kaip mes tai padarysime, pridėsime visiškai tuščią „šaknies“ klasę (liko tik klasės antraštė ir sakinys „Pabaigos klasė“) ir padarykime priklausomą nuo jos abiejų dalinių klasių. Taigi pridėkite dar vieną klasę, pavadintą „PartialClassRoot.vb“ ir vėl pakeiskite vidinį pavadinimą į „PartialClass“, kad jis atitiktų du pirmuosius. Šį kartą aš ne naudojo dalinį raktinį žodį tik tam, kad atitiktų Visual Studio tai.

Čia labai pravers žinios apie XML. Kadangi šis failas turės būti atnaujintas rankiniu būdu, turite tinkamai parinkti XML sintaksę. Redaguoti failą galite bet kuriame ASCII teksto rengyklėje - „Notepad“ veikia puikiai - arba XML redaktoriuje. Pasirodo, turite puikų „Visual Studio“ ir būtent tai parodyta toliau pateiktoje iliustracijoje. Bet jūs negalite redaguoti vbproj failo tuo pačiu metu, kai redaguojate projektą, kuriame jis yra. Taigi uždarykite projektą ir atidarykite tik vbproj failą. Redaguoti langą turėtumėte pamatyti failą, kaip parodyta toliau pateiktoje iliustracijoje.

(Atkreipkite dėmesį į Sudarykite kiekvienos klasės elementai. Priklausomas nuo sudedamieji elementai turi būti pridedami tiksliai taip, kaip parodyta toliau pateiktoje iliustracijoje. Ši iliustracija buvo sukurta VB 2005, tačiau ji buvo išbandyta ir 2008 m. VB.)


Spustelėkite čia, norėdami pamatyti iliustraciją
Norėdami grįžti, spustelėkite naršyklės mygtuką Atgal

Daugeliui iš mūsų turbūt pakanka žinoti, kad yra daliniai užsiėmimai, tiesiog kad žinotume, kokie jie yra, kai bandome ateityje surasti klaidą. Kuriant dideles ir sudėtingas sistemas, jie gali būti nedidelis stebuklas, nes jie gali padėti organizuoti kodą taip, kaip anksčiau buvo neįmanoma. (Taip pat galite turėti dalines struktūras ir dalines sąsajas!) Tačiau kai kurie žmonės padarė išvadą, kad „Microsoft“ išrado juos tik dėl vidinių priežasčių - kad jų kodo generavimas veiktų geriau. Autorius Paulius Kimmelis netgi nuėjo taip toli, kad pasiūlė, kad „Microsoft“ iš tikrųjų sukūrė dalines klases, kad sumažintų savo išlaidas, kad būtų lengviau perduoti plėtros darbus visame pasaulyje.

Gal būt. Tai yra dalykas, kurį jie gali padaryti.