A részleges osztályok a VB.NET egyik olyan szolgáltatása, amelyet szinte mindenhol használnak, de erről nem sokat írnak. Ennek oka az lehet, hogy még nincs sok nyilvánvaló „fejlesztői” alkalmazás ehhez. Az elsődleges felhasználás az ASP.NET és a VB.NET megoldások létrehozásának módja a Visual Studioban, ahol ez egyike azoknak a szolgáltatásoknak, amelyek általában "rejtettek".
A részleges osztály egyszerűen egy osztálydefiníció, amely egynél több fizikai fájlra van felosztva. A részosztályok nem különböznek a fordítótól, mivel az összes osztályt alkotó fájl egyszerűen egyetlen entitásba egyesül a fordító számára. Mivel az osztályokat csak összeolvadták és összeállították, nem keverheti a nyelveket. Vagyis nem lehet egy részleges osztály a C # -ben, a másik pedig a VB-ben. A részegységeket részleges osztályokkal sem szabad átkarolni. Mindannyian ugyanabban a szerelvényben kell lennie.
Ezt a Visual Studio sokat használja, különösen a weboldalakon, ahol ez kulcsfontosságú fogalom a "kód mögött" fájlokban. Látjuk, hogyan működik ez a Visual Stúdióban, de jó kiindulási pont annak megértése, hogy mi változott a Visual Studio 2005-ben, amikor bevezették.
A Visual Studio 2003-ban a Windows-alkalmazások "rejtett" kódja mind a "Windows Form Designer által generált kód" megjelöléssel ellátott régióban található. De még mindig ott volt ugyanabban a fájlban, és könnyű volt megtekinteni és megváltoztatni a régión belüli kódot. Összes A kód egy része elérhető a .NET-ben az alkalmazásához. De mivel ez néhány kód, amit kéne
A Visual Studio 2005-ben (Framework 2.0) a Microsoft megközelítőleg ugyanezt tette, de a kódot egy másik helyre rejtették: részleges osztályt külön fájlban. Ezt az alábbi ábra alján láthatja:
Kattintson ide az ábra megjelenítéséhez
A visszatéréshez kattintson a böngésző Vissza gombjára
A Visual Basic és a C # közötti szintaxis-különbség jelenleg az, hogy a C # ezt megköveteli összes a részosztályokat a kulcsszóval kell minősíteni Részleges de a VB nem. A VB.NET fő formátumának nincs külön minősítője. De egy üres Windows alkalmazás alapértelmezett osztálynyilatkozata a C # használatával így néz ki:
nyilvános részosztály 1. forma: forma
A Microsoft tervezési döntései az ilyen dolgokon érdekesek. Amikor Paul Vick, a Microsoft VB tervezője blogjában írta erről a tervválasztásról Panopticon Central, a hozzászólásokban folytatott vita az oldalakon és az oldalakon folytatódott.
Megtekintheti, hogy mindez hogyan működik a valós kóddal a következő oldalon.
Az előző oldalon a részleges osztályok fogalmát magyarázták. Egy osztályt két részosztálytá alakítunk ezen az oldalon.
Íme egy példaosztály egy módszerrel és egy tulajdonsággal a VB.NET projektben
Public Class CombinedClass. Privát m_Property1 mint karakterlánc. Nyilvános rész Új (ByVal érték mint karakterlánc) m_Property1 = Érték. Befejezés Sub. 1. nyilvános almódszer () MessageBox. Mutasd (nekem 1. tulajdonság) Eng Sub. Ingatlan Ingatlan1 () Karakterláncként. Kap. Vissza m_Property1. End Get. Állítsa be (ByVal érték mint karakterlánc) m_Property1 = érték. Vége. Végtulajdon. Végkategória
Ez az osztály meghívható (például egy Button objektum Click eseménykódjában) a következő kóddal:
Dim ClassInstance as new _. CombinedClass ("A Visual Basic részleges osztályokról") ClassInstance. Method1 ()
Az osztály tulajdonságait és módszereit különféle fizikai fájlokba választhatjuk el, ha két új osztályfájlt adunk a projekthez. Nevezze el az első fizikai fájlt Partial.methods.vb és nevezze meg a másodikt Partial.properties.vb. A fizikai fájlneveknek különbözõeknek kell lenniük, de a részleges osztálynevek azonosak lesznek, így a Visual Basic összevonhatja azokat a kód fordításakor.
Ez nem szintaxis követelmény, de a legtöbb programozó követi a Visual Studio példáját, hogy ezeknek az osztályoknak "pontozott" nevei vannak. A Visual Studio például az alapértelmezett nevet használja Form1.Designer.vb részleges osztályhoz egy Windows űrlaphoz. Ne felejtsen el minden osztályhoz hozzáadni a Részleges kulcsszót, és ugyanazzal a névvel változtassa meg a belső osztály nevét (nem a fájl nevét). A belső osztály nevét használtam: PartialClass.
Az alábbi ábra a példa és a működő kód összes kódját mutatja.
Kattintson ide az ábra megjelenítéséhez
A visszatéréshez kattintson a böngésző Vissza gombjára
A Visual Studio "elrejti" olyan részosztályokat, mint a Form1.Designer.vb. A következő oldalon megtanuljuk, hogyan lehet ezt csinálni a most létrehozott részleges osztályokkal.
Az előző oldalak ismertetik a részosztályok fogalmát, és megmutatják, hogyan kell ezeket kódolni. A Microsoft azonban még egy trükköt használ a Visual Studio által generált részosztályokkal. Az alkalmazás egyik oka az alkalmazási logika elválasztása az UI (felhasználói felület) kódtól. Egy nagy projektben ezt a két típusú kódot különböző csapatok is létrehozhatják. Ha különféle fájlokban vannak, akkor sokkal rugalmasabban létrehozhatók és frissíthetők. De a Microsoft egy újabb lépést hajt végre, és elrejti a részleges kódot a Solution Explorer programban is. Tegyük fel, hogy el akarjuk rejteni a részleges osztályok módszereit és tulajdonságait ebben a projektben? Van mód, de ez nem egyértelmű, és a Microsoft nem mondja meg, hogyan.
Az egyik ok, amiért nem látja a Microsoft által javasolt részosztályok használatát, az az, hogy a Visual Studio azt még nem támogatja nagyon jól. Például az éppen létrehozott Partial.methods.vb és Partial.properties.vb osztályok elrejtéséhez módosítani kell a vbproj fájlt. Ez egy XML fájl még csak nem is jelenik meg a Solution Explorer alkalmazásban. Megtalálhatja a Windows Intézőben, valamint a többi fájlban. A vbproj fájlt az alábbi ábra mutatja.
Kattintson ide az ábra megjelenítéséhez
A visszatéréshez kattintson a böngésző Vissza gombjára
Ennek módja az, ha hozzáadunk egy teljesen üres "gyökér" osztályt (csak az Osztályfejléc és a Végkategória állítás maradt), és mindkét részosztályunkat függővé tesszük. Tehát adj hozzá egy újabb osztályt PartialClassRoot.vb és ismét változtassa meg a belső nevet PartialClass-ra, hogy az megegyezzen az első kettővel. Ezúttal van nem a Részleges kulcsszót csak arra használta, hogy megfeleljen a Visual Studio elvégzésének.
Itt nagyon hasznos lehet az XML kis ismerete. Mivel ezt a fájlt manuálisan kell frissíteni, meg kell szereznie az XML szintaxist. A fájlt bármilyen ASCII szövegszerkesztőben szerkesztheti - a Jegyzettömb tökéletesen működik - vagy XML-szerkesztőben. Kiderül, hogy van egy nagyszerű a Visual Stúdióban, és ez az, amit az alábbi ábra mutat. De a vbproj fájlt nem szerkesztheti egyidejűleg a benne lévő projekt szerkesztésével. Tehát zárja be a projektet, és nyissa meg csak a vbproj fájlt. A szerkesztõablakban megjelenõ fájlt látnia kell az alábbi ábra szerint.
(Vegye figyelembe a Compile elemek minden osztályhoz. DependentUpon az alelemeket pontosan hozzá kell adni, az alábbi ábra szerint. Ezt az ábrát a VB 2005-ben készítették, de a VB 2008-ban is tesztelték.)
Kattintson ide az ábra megjelenítéséhez
A visszatéréshez kattintson a böngésző Vissza gombjára
Sokunk számára valószínűleg elegendő tudni, hogy vannak részosztályok, csak hogy tudjuk, mi azok, amikor a hibát a jövőben próbáljuk felfedezni. A nagy és összetett rendszerek fejlesztéséhez kis csoda lehet, mivel elősegítik a kód szervezését oly módon, amely korábban lehetetlen volt. (Lehetnek részleges struktúrák és részleges interfészek is!) De néhányan arra a következtetésre jutottak, hogy a Microsoft csak belső okokból találta ki őket, hogy a kód generálása jobban működjön. Paul Kimmel író azt is elérte, hogy a Microsoft valójában részleges osztályokat hozzon létre, hogy költségeik csökkentése érdekében megkönnyítse a fejlesztési munkák kiszervezését az egész világon.
Talán. Ez az a fajta dolog, amit csinálhatnak.