Pregled djelomičnih klasa u Visual Basic .NET

click fraud protection

Djelomične klase su značajka VB.NET-a koji se koristi gotovo svugdje, ali o njemu se ne piše puno. To može biti zato što još uvijek nema puno očitih aplikacija za programere. Primarna je upotreba na način na koji se ASP.NET i VB.NET rješenja stvaraju u Visual Studio-u, gdje je to jedna od onih značajki koja je obično „skrivena“.

Djelomična klasa jednostavno je definicija klase koja je podijeljena na više fizičkih datoteka. Djelomične klase ne čine razliku kod prevoditelja jer su sve datoteke koje čine klasu jednostavno spojene u jednu cjelinu za prevoditelj. Kako su klase samo spojene i sastavljene, ne možete miješati jezike. Odnosno, ne možete imati jednu djelomičnu klasu u C # i drugu u VB. Ne možete ni dijelove klase razdijeliti. Svi moraju biti u istoj skupštini.

Sam Visual Studio ovo puno koristi, posebno na web stranicama na kojima je ključni pojam u datotekama "kod iza". Vidjet ćemo kako to funkcionira u Visual Studio-u, ali razumijevanje onoga što se promijenilo u Visual Studio 2005 kada je predstavljen dobro je polazište.

instagram viewer

U Visual Studio 2003, "skriveni" kôd za Windows aplikaciju nalazio se u odjeljku zvanom Region koji je označen kao "Kôd generiran od dizajnera forme Windows". No, i dalje je bio sve u istoj datoteci i bilo je lako vidjeti i promijeniti kod u regiji. svi koda dostupan je vašoj aplikaciji u .NET. No, budući da je to neki kod koji biste trebali nikad se ne miješajte, to je čuvano u toj skrivenoj Regiji. (Regije se i dalje mogu koristiti za vlastiti kôd, ali Visual Studio ih više ne koristi.)

U Visual Studio 2005 (Framework 2.0) Microsoft je učinio približno istu stvar, ali su kod sakrili na drugom mjestu: djelomičnu klasu u zasebnoj datoteci. To možete vidjeti na dnu slike ispod:


Kliknite ovdje za prikaz ilustracije
Za povratak kliknite gumb Natrag u pregledniku

Jedna od razlika u sintaksi između Visual Basic i C # trenutno je to što C # to zahtijeva svi djelomične klase kvalificiraju se ključnom riječi parcijalan ali VB ne. Vaš glavni oblik na VB.NET-u nema nikakve posebne kvalifikacije. Ali zadana izjava klase za praznu Windows aplikaciju izgleda ovako koristeći C #:

javna djelomična klasa Form1: Obrazac

Microsoftovi odabir dizajna na ovakve stvari je zanimljiv. Kad je Paul Vick, Microsoftov VB dizajner, napisao o ovom izboru dizajna na svom blogu Panopticon Central, rasprava o tome u komentarima se vodila na stranice i stranice.

Pogledajmo kako sve to funkcionira s stvarnim kodom na sljedećoj stranici.

Na prethodnoj je stranici objašnjen koncept djelomične nastave. Na ovoj stranici pretvaramo jednu klasu u dvije djelomične klase.

Evo primjera klase s jednom metodom i jednim svojstvom u VB.NET projektu

 Javna klasa CombinedClass. Privatna m_Property1 kao niz. Javna pod-nova (ByVal vrijednost kao niz) m_Property1 = Vrijednost. Kraj Sub. Javni pod metod1 () poruka. Prikaži (m_Property1) Kraj Sub. Objekt Property1 () kao niz. Dobiti. Vrati m_Property1. Kraj Get. Postavite (ByVal vrijednost kao niz) m_Property1 = vrijednost. Završni skup. Kraj imovine. Krajnja klasa 

Ova se klasa može nazvati (na primjer, u kodu klika događaja objekta Button) kodom:

Dim ClassInstance Kao novo _. CombinedClass ("O osnovnim vizualnim djelomičnim razredima") ClassInstance. Metoda1 ()

Svojstva i metode klase možemo razdvojiti u različite fizičke datoteke dodavanjem dvije nove datoteke klase projektu. Navedite prvu fizičku datoteku Partial.methods.vb i imenovati drugu Partial.properties.vb. Nazivi fizičkih datoteka moraju biti različiti, ali nazivi djelomičnih klasa bit će isti, tako da ih Visual Basic može spojiti kad se kôd sastavi.

To nije uvjet za sintaksu, ali većina programera slijedi primjer korištenja "točkastih" imena za ove klase u Visual studiju. Na primjer, Visual Studio koristi zadano ime Form1.Designer.vb za djelomičnu klasu za Windows obrazac. Ne zaboravite dodati ključnu riječ Partial za svaku klasu i promijeniti naziv interne klase (a ne naziv datoteke) u isto ime. Koristio sam naziv interne klase: PartialClass.

Donja slika prikazuje sav kôd za primjer i kôd na djelu.


Kliknite ovdje za prikaz ilustracije
Za povratak kliknite gumb Natrag u pregledniku

Visual Studio "skriva" djelomične klase poput Form1.Designer.vb. Na sljedećoj stranici saznajemo kako to učiniti pomoću djelomičnih klasa koje smo upravo stvorili.

Prethodne stranice objašnjavaju pojam djelomičnih klasa i pokazuju kako ih kodirati. No, Microsoft koristi još jedan trik s djelomičnim klasama koje je stvorio Visual Studio. Jedan od razloga njihovog korištenja je odvajanje logike aplikacije od UI (korisničkog sučelja) koda. U velikom projektu mogu stvoriti ove dvije vrste koda različiti timovi. Ako se nalaze u različitim datotekama, mogu se kreirati i ažurirati s puno više fleksibilnosti. No, Microsoft ide još jedan korak i skriva djelomični kod u Solution Explorer-u. Pretpostavimo da smo u ovom projektu željeli sakriti metode i svojstva djelomičnih klasa? Postoji način, ali nije očito i Microsoft vam ne govori kako.

Jedan od razloga zbog kojeg ne vidite upotrebu djelomičnih klasa koje je preporučio Microsoft jest taj što to još uvijek nije jako dobro podržano u Visual Studio-u. Na primjer, da biste sakrili parcijalne klase Partial.methods.vb i Partial.properties.vb potrebne su promjene u vbproj datoteka. Ovo je XML datoteka koja nije ni prikazan u pregledniku Solution. Možete ga pronaći u programu Windows Explorer zajedno s ostalim datotekama. Vbproj datoteka prikazana je na donjoj slici.


Kliknite ovdje za prikaz ilustracije
Za povratak kliknite gumb Natrag u pregledniku

Način na koji ćemo to učiniti jest dodati klasu „root“ koja je potpuno prazna (preostali su samo klasa klase i izjava klase End) i napraviti obje naše djelomične klase ovisno o njoj. Dakle, dodajte još jedan razred s imenom PartialClassRoot.vb i opet promijenite interno ime u PartialClass da bi se podudarali s prva dva. Ovaj put jesam ne koristio je ključnu riječ Partial samo da bi se uskladio s načinom na koji to radi Visual Studio.

Evo gdje će vam malo dobro doći znanje XML-a. Budući da će se ova datoteka morati ažurirati ručno, morate dobiti ispravnu sintaksu XML. Datoteku možete urediti u bilo kojem ASCII uređivaču teksta - Notepad radi sasvim u redu - ili u XML uređivaču. Ispada da imate odličnog u Visual studiju i to je ono što je prikazano na donjoj slici. Ali datoteku vbproj ne možete uređivati ​​istovremeno kad uređujete projekt u kojem se nalazi. Dakle, zatvorite projekt i otvorite samo datoteku vbproj. Trebali biste vidjeti datoteku prikazanu u prozoru za uređivanje kao što je prikazano na donjoj slici.

(Obratite pažnju na Sastaviti elementi za svaki razred. Ovisan o podelementi moraju biti dodani točno onako kako je prikazano na donjoj slici. Ova ilustracija je stvorena u VB 2005, ali testirana je i u VB 2008.)


Kliknite ovdje za prikaz ilustracije
Za povratak kliknite gumb Natrag u pregledniku

Za mnoge od nas je vjerojatno dovoljno znati da postoje djelomične nastave, samo tako da znamo kakve su one kad pokušavamo otkriti bugu u budućnosti. Za razvoj velikih i složenih sustava oni bi mogli biti malo čudo jer mogu pomoći u organiziranju koda na načine koji bi prije bili nemogući. (Možete imati i djelomične strukture i djelomična sučelja!) No neki su zaključili da ih je Microsoft izumio samo iz unutarnjih razloga - kako bi poboljšao njihovu izradu koda. Autor Paul Kimmel čak je otišao toliko daleko da je sugerirao da je Microsoft zapravo stvorio djelomične klase kako bi snizio njihove troškove olakšavajući posao razvoja outsourcinga širom svijeta.

Može biti. To bi mogli učiniti.

instagram story viewer