Osittaiset luokat ovat VB.NET: n ominaisuus, jota käytetään melkein kaikkialla, mutta siitä ei ole paljon kirjoitettu. Tämä voi johtua siitä, että siihen ei vielä ole paljon ilmeisiä "kehittäjä" -sovelluksia. Ensisijainen käyttö on tapa, jolla ASP.NET- ja VB.NET-ratkaisut luodaan Visual Studiossa, missä se on yksi niistä ominaisuuksista, joka on normaalisti "piilotettu".
Osittainen luokka on yksinkertaisesti luokan määritelmä, joka on jaettu useampaan kuin yhteen fyysiseen tiedostoon. Osittaisilla luokilla ei ole merkitystä kääntäjälle, koska kaikki luokan muodostavat tiedostot sulautetaan yksinkertaisesti yhdeksi kokonaisuudeksi kääntäjälle. Koska luokat on vain sulautettu yhteen ja koottu, et voi sekoittaa kieliä. Eli sinulla ei voi olla yhtä osaluokkaa C #: ssä ja toista VB: ssä. Myöskään osittaisia luokkia ei voi ulottaa. Heidän kaikkien on oltava samassa kokoonpanossa.
Tätä käyttää itse Visual Studio paljon, etenkin verkkosivuilla, joilla se on avainkäsite "koodi takana"-tiedostoissa. Näemme kuinka tämä toimii Visual Studiossa, mutta ymmärtäminen, mikä muuttui Visual Studio 2005: ssä, kun se esiteltiin, on hyvä lähtökohta.
Visual Studio 2003: ssa Windows-sovelluksen "piilotettu" koodi oli kaikki osassa nimeltään alue, jolla on merkintä "Windows Form Designerin luoma koodi". Mutta se oli silti kaikki samassa tiedostossa ja alueen koodi oli helppo katsella ja muuttaa. Kaikki koodin on käytettävissä sovelluksessasi .NET. Mutta koska osa siitä on koodi, jonka sinun pitäisi
Visual Studio 2005: ssä (Framework 2.0) Microsoft teki suunnilleen saman asian, mutta he piilottivat koodin toiseen paikkaan: osittaisen luokan erilliseen tiedostoon. Voit nähdä tämän alla olevan kuvan alareunassa:
Napsauta tätä nähdäksesi kuvan
Napsauta selaimen Takaisin-painiketta palataksesi
Yksi Visual Basicin ja C #: n syntaksieroista on tällä hetkellä, että C # vaatii sitä kaikki osittaiset luokat luokitellaan avainsanalla Osittainen mutta VB ei. VB.NET: n päälomakkeellasi ei ole erityisiä karsintoja. Mutta tyhjän Windows-sovelluksen oletusluokkalausunto näyttää tältä: C #:
julkinen osaluokka Form1: Lomake
Microsoftin suunnitteluvalinnat tällaisiin asioihin ovat mielenkiintoisia. Kun Microsoftin VB-suunnittelija Paul Vick kirjoitti tästä mallivalinnasta blogissaan Panopticon Central, keskustelu siitä kommenteissa jatkui sivuilla ja sivuilla.
Katsotaan, kuinka tämä kaikki toimii oikealla koodilla seuraavalla sivulla.
Edellisellä sivulla selitettiin osaluokkien käsitettä. Muuntamme yhden luokan kahdeksi osaluokkaksi tällä sivulla.
Tässä on esimerkki luokasta, jolla on yksi menetelmä ja yksi ominaisuus VB.NET-projektissa
Public Class CombinedClass. Yksityinen m_Property1 merkkijonona. Julkinen osa Uusi (ByVal-arvo merkkijonona) m_Property1 = Arvo. End Sub. Julkinen alamenetelmä1 () MessageBox. Näytä (m_Property1) End Sub. Kiinteistö Kiinteistö1 () merkkijonona. Saada. Palauta m_Property1. End Get. Aseta (ByVal-arvo merkkijonona) m_Property1 = arvo. End Set. Lopeta omaisuus. Loppu luokka
Tätä luokkaa voidaan kutsua (esimerkiksi painikeobjektin napsautustapahtumakoodissa) koodilla:
Dim ClassInstance kuin uusi _. CombinedClass ("Tietoja Visual Basic -sarjakursseista") ClassInstance. Telmällä1 ()
Voimme erottaa luokan ominaisuudet ja menetelmät erilaisiin fyysisiin tiedostoihin lisäämällä projektiin kaksi uutta luoktatiedostoa. Nimeä ensimmäinen fyysinen tiedosto Partial.methods.vb ja nimeä toinen Partial.properties.vb. Fyysisten tiedostojen nimien on oltava erilaisia, mutta osittaiset luokanimet ovat samat, jotta Visual Basic voi yhdistää ne, kun koodi kootaan.
Se ei ole syntaksin vaatimus, mutta suurin osa ohjelmoijista seuraa Visual Studion esimerkkiä "punkturoitujen" nimien käytöstä näille luokille. Esimerkiksi Visual Studio käyttää oletusnimeä Form1.Designer.vb osittaiselle luokalle Windows-lomakkeelle. Muista lisätä kunkin luokan osittainen avainsana ja muuttaa sisäinen luokan nimi (ei tiedostonimi) samaan nimeen. Käytin sisäistä luokan nimeä: PartialClass.
Alla olevassa kuvassa näkyy kaikki esimerkin koodi ja koodi toiminnassa.
Napsauta tätä nähdäksesi kuvan
Napsauta selaimen Takaisin-painiketta palataksesi
Visual Studio "piilottaa" osittaiset luokat, kuten Form1.Designer.vb. Seuraavalla sivulla opimme kuinka tehdä sen juuri luomillamme osittaisilla luokilla.
Edellisillä sivuilla selitetään osaluokkien käsite ja osoitetaan, kuinka ne koodataan. Mutta Microsoft käyttää vielä yhtä temppua Visual Studion tuottamissa osittaisissa luokissa. Yksi syy niiden käyttämiseen on erottaa sovelluslogiikka käyttöliittymäkoodista. Suuressa projektissa nämä kaksi koodityyppiä saattavat jopa luoda eri ryhmät. Jos ne ovat eri tiedostoissa, niitä voidaan luoda ja päivittää paljon joustavammin. Mutta Microsoft menee vielä yhden askeleen ja piilottaa osittaisen koodin myös Solution Explorerissa. Oletetaan, että halusimme piilottaa menetelmät ja ominaisuudet osittaiset luokat tässä projektissa? Siellä on tapa, mutta se ei ole ilmeinen, eikä Microsoft kerro sinulle miten.
Yksi syy siihen, että et näe Microsoftin suositteleman osaluokkien käyttöä, on se, että sitä ei tueta vielä hyvin Visual Studiossa. Esimerkiksi juuri luomiemme Partial.methods.vb- ja Partial.properties.vb-luokkien piilottaminen edellyttää muutosta vbproj tiedosto. Tämä on XML-tiedosto, joka ei edes näytetä Solution Explorerissa. Löydät sen Windowsin Resurssienhallinnasta yhdessä muiden tiedostojesi kanssa. Vbproj-tiedosto näkyy alla olevassa kuvassa.
Napsauta tätä nähdäksesi kuvan
Napsauta selaimen Takaisin-painiketta palataksesi
Tapa, jolla aiomme tehdä, on lisätä "juuri" luokka, joka on täysin tyhjä (vain Class-otsikko ja End Class -käsky on jäljellä) ja tehdä molemmista osaluokistamme riippuvaisia siitä. Joten lisää toinen luokka nimeltään PartialClassRoot.vb ja vaihda uudelleen sisäinen nimi PartialClassiksi vastaamaan kahta ensimmäistä. Tällä kertaa minulla on ei käytti osittaista avainsanaa vain vastaamaan tapaa, jolla Visual Studio tekee sen.
Tässä on vähän tietoa XML: stä, josta on hyötyä. Koska tämä tiedosto on päivitettävä manuaalisesti, sinun on saatava XML-syntaksi oikein. Voit muokata tiedostoa missä tahansa ASCII-tekstieditorissa - Muistio toimii hienosti - tai XML-editorissa. Osoittautuu, että sinulla on upea Visual Studiossa, ja se esitetään alla olevassa kuvassa. Mutta vbproj-tiedostoa ei voi muokata samaan aikaan, kun muokkaat projektia, jossa se on. Joten sulje projekti ja avaa vain vbproj-tiedosto. Sinun pitäisi nähdä tiedosto muokkausikkunassa alla olevan kuvan osoittamalla tavalla.
(Huomaa Koota elementit jokaiselle luokalle. Riippuvainen jostain alaelementit on lisättävä tarkalleen alla olevan kuvan mukaisesti. Tämä kuva on luotu VB 2005, mutta se on testattu myös VB 2008: ssa.)
Napsauta tätä nähdäksesi kuvan
Napsauta selaimen Takaisin-painiketta palataksesi
Monille meistä riittää todennäköisesti tietää, että osittaisia luokkia on olemassa, vain jotta tiedämme, millaiset ne ovat, kun yritämme jäljittää vian tulevaisuudessa. Suurille ja monimutkaisille järjestelmien kehittämiselle ne voivat olla pieni ihme, koska ne voivat auttaa järjestämään koodia tavoilla, jotka olisivat aiemmin olleet mahdotonta. (Sinulla voi olla myös osittaisia rakenteita ja osittaisia rajapintoja!) Mutta jotkut ihmiset ovat todenneet, että Microsoft keksi ne vain sisäisistä syistä - koodien luomisen parantamiseksi. Kirjailija Paul Kimmel meni jopa niin pitkälle, että ehdotti Microsoftille todellakin luoneen osittaisia luokkia kustannusten alentamiseksi helpottamalla kehitystyön ulkoistamista ympäri maailmaa.
Voi olla. Se on sellainen asia, jonka he saattavat tehdä.