Delni razredi so značilnost VB.NET-a, ki se uporablja skoraj povsod, vendar o tem ni veliko napisanega. To bi lahko bilo zato, ker zaenkrat še ni veliko očitnih aplikacij za razvijalce. Primarna uporaba je na način, kako se rešitve ASP.NET in VB.NET ustvarjajo v Visual Studio, kjer je ena od tistih funkcij, ki je običajno "skrita".
Delni razred je preprosto definicija razreda, ki je razdeljena na več fizičnih datotek. Delni razredi ne vplivajo na prevajalnik, ker so vse datoteke, ki sestavljajo razred, preprosto združene v eno celoto za prevajalnik. Ker so razredi le združeni in sestavljeni, ne morete mešati jezikov. To pomeni, da ne morete imeti enega delnega razreda v C # in drugega v VB. Tudi delnih razredov ne morete napeljati na sklope. Vsi morajo biti v istem sestavu.
To Visual Studio veliko uporablja, zlasti na spletnih straneh, kjer je ključni pojem v datotekah "koda za". Videli bomo, kako to deluje v Visual studiu, a razumevanje, kaj se je spremenilo v Visual Studio 2005, ko je bil predstavljen, je dobro izhodišče.
V Visual Studio 2003 je bila "skrita" koda za aplikacijo za Windows v razdelku z imenom Regija, označena s kodo, ki jo je ustvaril oblikovalec obrazcev Windows. Vendar je bilo še vedno vse v isti datoteki in bilo je enostavno videti in spremeniti kodo v regiji. Vse kode je na voljo vaši aplikaciji v .NET. A ker je nekaj kode, ki bi ga morali
V Visual Studio 2005 (Framework 2.0) je Microsoft naredil približno isto stvar, vendar so kodo skrili na drugem mestu: delni razred v ločeni datoteki. To lahko vidite na dnu spodnje slike:
Kliknite tukaj, če želite prikazati ilustracijo
Za vrnitev kliknite gumb Nazaj v brskalniku
Ena od sintaksičnih razlik med Visual Basic in C # trenutno je, da to zahteva C # vse delni razredi se kvalificirajo s ključno besedo Delno vendar VB ne. Vaš glavni obrazec v VB.NET nima posebnih kvalifikatorjev. Toda privzeti stavek razreda za prazno aplikacijo Windows izgleda tako z uporabo C #:
javni delni razred Form1: Obrazec
Microsoftova izbira oblikovanja za take stvari je zanimiva. Ko je Paul Vick, Microsoftov oblikovalec VB, pisal o tej izbiri oblikovanja na svojem blogu Panopticon Central, razprava o tem v komentarjih je potekala na straneh in straneh.
Poglejmo, kako vse to deluje s pravo kodo na naslednji strani.
Na prejšnji strani je bil razložen koncept delnih razredov. Na tej strani en razred pretvorimo v dva delna razreda.
Tu je primer razreda z eno metodo in eno lastnostjo v projektu VB.NET
Javni razred CombinedClass. Zasebna m_Property1 kot niz. Javna pod novo (vrednost ByVal kot niz) m_Property1 = Vrednost. Končni pod. Javni podmeter1 () sporočilo. Prikaži (m_Property1) End Sub. Lastnost Property1 () kot niz. Pridite. Vrnite m_Property1. Končaj Get. Nastavite (ByVal vrednost kot niz) m_Property1 = vrednost. Končni niz Končna lastnost. Končni razred
Ta razred lahko pokličete (na primer v kodi dogodka Click za predmet gumba) s kodo:
Dim ClassInstance kot novo _. CombinedClass ("O osnovnih vizualnih delnih razredih") ClassInstance. Metoda1 ()
Lastnosti in metode razreda lahko ločimo v različne fizične datoteke, tako da projektu dodamo dve novi datoteki razreda. Poimenite prvo fizično datoteko Delno.methods.vb in poimenujte drugo Delne.properties.vb. Imena fizičnih datotek morajo biti različna, vendar bodo imena delnih razredov enaka, da jih bo Visual Basic lahko združil, ko je koda sestavljena.
To ni zahteva po sintaksi, vendar večina programerjev v Visual Studio sledi zgledu uporabe "pikčanih" imen za te razrede. Na primer, Visual Studio uporablja privzeto ime Form1.Designer.vb za delni razred za obrazec Windows. Ne pozabite dodati ključne besede Partial za vsak razred in spremeniti ime notranjega razreda (ne ime datoteke) v isto ime. Uporabil sem ime notranjega razreda: PartialClass.
Spodnja slika prikazuje vso kodo za primer in kodo v akciji.
Kliknite tukaj, če želite prikazati ilustracijo
Za vrnitev kliknite gumb Nazaj v brskalniku
Visual Studio "skriva" delne razrede, kot je Form1.Designer.vb. Na naslednji strani se naučimo, kako to storiti z delnimi razredi, ki smo jih pravkar ustvarili.
Na prejšnjih straneh je razložen koncept delnih razredov in prikazano, kako jih kodirati. Toda Microsoft uporablja še en trik z delnimi razredi, ki jih je ustvaril Visual Studio. Eden od razlogov za njihovo uporabo je ločitev logike aplikacije od kode uporabniškega vmesnika (uporabniškega vmesnika). V velikem projektu lahko te dve vrsti kode ustvarijo celo različne ekipe. Če so v različnih datotekah, jih je mogoče ustvariti in posodobiti z veliko večjo prilagodljivostjo. Toda Microsoft gre še en korak in skrije tudi delno kodo v Raziskovalcu rešitev. Recimo, da smo želeli v tem projektu skriti delne razrede metod in lastnosti? Obstaja način, vendar ni očitno in Microsoft vam ne pove, kako.
Eden od razlogov, da ne vidite uporabe delnih razredov, ki jih priporoča Microsoft, je, da v Visual Studio še vedno ni dobro podprta. Za skrivanje razredov Partial.methods.vb in Partial.properties.vb, ki smo jih pravkar ustvarili, je potrebna sprememba v vbproj mapa. To je datoteka XML, ki niti ni prikazan v Raziskovalcu rešitev. Najdete ga lahko v programu Windows Explorer skupaj z drugimi datotekami. Datoteka vbproj je prikazana na spodnji sliki.
Kliknite tukaj, če želite prikazati ilustracijo
Za vrnitev kliknite gumb Nazaj v brskalniku
Način, kako bomo to storili, je, da dodamo "root" razred, ki je popolnoma prazen (le še glavo Class in stavek End Class) in naredimo oba naša delna razreda odvisna od njega. Torej dodajte še en razred z imenom PartialClassRoot.vb in spet spremenite notranje ime v PartialClass, da se ujemata s prvima dvema. Tokrat imam ne uporabil ključno besedo Partial samo zato, da se ujema z načinom, kako to počne Visual Studio.
Tukaj bo malo znanja o XML zelo koristno. Ker bo treba to datoteko posodobiti ročno, morate pravilno pridobiti sintakso XML. Datoteko lahko uredite v katerem koli urejevalniku besedil ASCII - Beležnica deluje povsem v redu - ali v urejevalniku XML. Izkazalo se je, da imate odličnega v Visual studiu in to je prikazano na spodnji sliki. Toda datoteke vbproj ne morete urejati hkrati, ko urejate projekt, v katerem je. Torej zaprite projekt in odprite samo datoteko vbproj. V oknu za urejanje bi morali videti datoteko, prikazano na spodnji sliki.
(Upoštevajte Sestavi elementi za vsak razred. DependentUpon podelemente je treba dodati točno tako, kot je prikazano na spodnji sliki. Ta ilustracija je bila ustvarjena v VB 2005, preizkušena pa je bila tudi v VB 2008.)
Kliknite tukaj, če želite prikazati ilustracijo
Za vrnitev kliknite gumb Nazaj v brskalniku
Za mnoge od nas je verjetno dovolj, da vemo, da so delni razredi tam, samo tako vemo, kakšni so, ko poskušamo izslediti hrošča v prihodnosti. Za razvoj velikih in zapletenih sistemov bi lahko bil majhen čudež, saj lahko pomagajo organizirati kodo na načine, ki bi bili prej nemogoči. (Lahko imate tudi delne strukture in delne vmesnike!) Toda nekateri ljudje so sklenili, da jih je Microsoft izumil samo zaradi notranjih razlogov - da bi izboljšali njihovo ustvarjanje kode. Avtor Paul Kimmel je celo šel tako daleč, da je nakazoval, da je Microsoft dejansko ustvaril delne razrede, da je znižal njihove stroške, s čimer je olajšal zunanje izvajanje razvojnega dela po vsem svetu.
Mogoče. To bi lahko storili.