Class Library technológia
Az előző két rész ezt a cikket kezdtük ismeri a Microsoft .NET Framework - kulcsfontosságú eleme a Microsoft .NET, egy platform létrehozása, végrehajtása és teljesítése Web-szolgáltatások és alkalmazások. Beszéltünk az alapvető összetevője a Microsoft .NET Framework és röviden ismerteti a céljuk. Azt is megkezdődött részletesebb felülvizsgálatát Common Language Runtime (CLR) - teljesítmény .NET-alkalmazási környezetben. Elkészítettük a jártasságot a Common Language Runtime történet a közös típusú rendszer.
Ebben a számban kezd ismerős a osztálykönyvtárat, nézd meg a fő összetevői a névterek és osztályok néhány példát azok használatát.
.NET Framework Class Library osztálykönyvtárat osztályokat tartalmazza, amelyek a következő funkciókat:
- támogató alap és a felhasználó által definiált típusok;
- támogatása kivételkezelés;
- működés I / O művelet patakok;
- fellebbezni az operációs rendszer funkcióit;
- az adatokhoz való hozzáférést;
- a képesség, hogy a Windows-alapú alkalmazások;
- a képesség, hogy a kliens és szerver web-alapú alkalmazások;
- a képesség, hogy a web-szolgáltatásokat.
Minden osztály végre a .NET Framework Class Library szerveződnek névtérben (névterek). Mindegyik névtér tartalmaz osztályok és egyéb típusok, melyek egy adott feladat vagy feladatcsoport - I / O műveletek létrehozására web-alapú alkalmazások az adatok és az XML-dokumentumok, stb Az alábbi táblázat a legfontosabb névteret a .NET osztály könyvtár.
Miután egy rövid áttekintést a legfontosabb névterek készek vagyunk, hogy folytassa a részletesebb vizsgálata a .NET osztály könyvtár. Az első állomása utunk nem egészen normális -, hanem a hagyományos figyelembevételével az alap osztály objektum, amely az őse minden osztály a .NET osztály könyvtár, akkor nézd meg a konzol osztály és konzolos alkalmazások. Miért így teszünk, akkor egyértelmű lesz később.
Class konzol és konzolos alkalmazások
Segítségével System.Console osztály, mi is létrehozhatunk egyszerű alkalmazások a .NET környezet - konzol használó alkalmazások a rendszer ablak bemeneti és kimeneti információk és nem igényel grafikus felhasználói felület. Mivel a legtöbb példát ebben a sorozatban fog használni egy konzolos alkalmazás, akkor kezdjük a ismeretséget az osztályok a konzollal osztály könyvtár.
Visual Basic .NET, hozunk létre egy konzolos alkalmazás, mint egy új modult, amely tartalmaz egy szubrutin Main - ez a belépési pont a konzol alkalmazás:
Módszerek olvasása és ReadLine szolgálják olvasni egy vagy több karakter vagy újsor stdin és módszerek írása és WriteLine nevû - megjeleníteni egy vagy több karaktert vagy a vonal egy új vonal szimbólum a standard kimenetre.
Setin módszerek, kirakat SetError, és lehetővé teszi, hogy felülbírálja a szabványos bemeneti, kimeneti és hiba. Ezek a módszerek számítanak típusú argumentumot TextWriter, amely leírja áramlását.
Most már teljesen készen áll a tanulmány Microsoft .NET Class Library. A következő részben megnézzük System névtér és gyermek névterek.
System névtér
Rendszer névtér gyökér névteret a Microsoft .NET Class Library tartalmaz alapvető adattípusok végre a .NET-keretrendszer. Ez a névtér tartalmazza az osztály objektum, amely az őse minden osztály a .NET osztály könyvtár, a primitív és fejlett típusok, valamint több mint 100 további osztályokat használják kivétel kezelése, ellenőrzése alkalmazási területeken, szemétgyűjtés, stb
Object osztály
System.Object osztály az őse minden osztály a .NET osztály könyvtár. Módszerek végre ebben az osztályban mutatja az alábbi ábra.
Nézzük röviden úgy mindegyik módszer:
- Módszer Egyenlő (objektum), vagy az Eredmény (Object, Object) - alkalmazunk, hogy ellenőrizze, hogy a két objektum azonos példány. Az adatok az értékek ez a módszer felülbírálja (a ValueType osztály), és lehetővé teszi, hogy ellenőrizze a személyazonosságát a tárolt értékek az objektum példányok. Megjegyzés: ha összevetjük a két referencia típusok, az egyenlő módszer ellenőrzi, hogy a két másolat azonos; adatok értékeit az egyenlő módszer is ellenőrzi a személyazonosságát tárolt objektum példányok.
- ReferenceEquals módszer (Object, Object) ellenőrzi, hogy a két objektum azonos példány.
- alapértelmezett Lezárás () metódus nem csinál semmit. Ez a módszer lehet felülírható a származtatott osztály, hogy hajtsa végre a végső tisztítási memóriában, mielőtt a szemétgyűjtő mechanizmus (szemétgyűjtő) megsemmisíti az objektumot.
- GetHashCode () módszert használjuk, hogy kialakítsunk hash-értékek (Integer), amelyeket fel lehet használni tárolására tárgyakat a hash táblák.
- MemberwiseClone () metódus létrehoz egy pontos másolatot az objektum.
- Módszer toString () visszaad egy szöveges megjelenítése az objektumot. A legtöbb esetben ez a módszer visszaadja a teljes képzésű osztály nevét az objektum.
- GetType () metódus visszaadja típusú objektum adott példány számára.
Az alábbiakban bemutatjuk, hogyan kell használni az osztály típusa.
Class Type és a tér Reflection nevek
Class Type mi belépési pont a térben Reflection neveket. Reflection (Reflection) .NET értelemben - az a képesség, hogy tanulmányozza annak lehetőségét osztályok futásidőben. Segítségével visszaverődés, tudjuk kivonat az osztályok, hogy megtanulják a módszereket, tulajdonságok, kivitelezők, mezők, események, és a többi tag, egy szó, akkor kap hozzáférést a metaadatok az osztályban.
Osztály tartalmaz módszerek típusa Típus GetMethods () és GetProperties (), amelyeket fel lehet használni, hogy információt kapjunk a tanulót. Az osztályok végre a térben Reflection nevek tudunk információt szerezni, például eljárások paraméterei (a System.Reflection osztályban. MethodInfo), és még hívja módszerek módszerrel Invoke ().
Az alábbi példa bemutatja, hogyan használhatja a gondolkodási mechanizmus. A következő kód azt mutatja, hogyan kell használni a getType () metódus, hogy Type tárgy és hogyan kell használni a több objektum tulajdonságait:
Egy rövid pillantást az alapvető funkciók által kínált tér Reflection nevek, majd illusztrálására néhány példát.
- Assembly osztály lehet használni meghatározására és rakodási egységek, terhelési modult az összeállítás nyilvánvaló (összeszerelés nyilvánvaló), a keresés a leírt az összeszerelési és hozzon létre az esetekben az ilyen típusú.
- Class modul lehet használni, hogy keressen osztályok a modul, valamint az összes globális és helyi meghatározott módszerek ebben a modulban.
- ConstructorInfo osztály lehet használni, hogy keressen nevek, paraméterek, hozzáférési módosítók, és egyéb információkat a tervező. Megkeresése és felhívása kivitelező, tudjuk végezni a segítségével GetConstructors () vagy GetConstructor () objektum típusa.
- Class MethodInfo használt keres nevek, visszatérő típusok, paraméterek, hozzáférési módosítók, és egyéb információkat a módszert. Megkeresése és felhívása módszerekkel tudjuk végezni a segítségével GetMethods () vagy GetMethod () objektum típusa.
- Információt keresni a mezők - neveket, hozzáférési módosítók, stb - használt FieldInfo osztályban. Ezen túlmenően, ez az osztály juthatunk, és állítsa a mezők értékeit.
- Class EventInfo használt keres nevek, eseménykezeléshez, adattípusok, és egyéb információkat az eseményről. Ez az osztály lehetővé teszi hozzá, és távolítsa el eseménykezelőkkel.
- Class PropertyInfo használt keres nevek, adattípusok, és egyéb információkat a tulajdonságokat. Ezzel osztályban is kap, és állítsa ingatlan értékének.
- Class ParameterInfo használható keresni a tájékoztatás a paraméterek - név, adattípus, stb
A következő példa bemutatja, hogyan kell egy listát a meghatározott típusok ebben a modulban.
A következő kód mutatja a kimeneti ezt az információt:
Mint látható a fenti listából, az egész koncepció hasonlít a tükröződést ITypeLibrary interfész Win32 API a tanulmány típusú könyvtárak, de az a változat a .NET további szolgáltatásokat, könnyebb használni, és sokkal barátságosabb a különböző programozási nyelvek.
Most bővítjük példa, és adjunk információt a tulajdonságok, kivitelezők, módszerek, interfészek és eseményeket. Ehhez használja a módszerek GetProperties (), GetConstructors (), GetMethods (), GetInterfaces () és GetEvents () objektum típusa. Ezen eljárások mindegyike vissza egy tömbben típusú elemek PropertyInfo, MethodInfo, EventInfo stb - minden típusú örökli az absztrakt típus MemberInfo, amit használni a példánkban. Az egyetlen kivétel PropertyInfo típus - ezt a típust használják annak érdekében, hogy további információt a tulajdonságok:
Az alábbiakban bemutatjuk a kimeneti példánk System.Array osztályok:
Vegye figyelembe, hogy az eljárás paraméterek nem címei - a lista mutatja, csak a adattípusok. Ahhoz, hogy minél több információt a paramétereket a módszereket kellene használni a módszert GetParameters () és a szerkezet ParameterInfo. Hogyan csináljuk ezt az alábbiakban mutatjuk be:
Most már tudjuk, a paraméter nevét és típusát:
Annak érdekében, hogy hozzáférjen az összeállítás (a mi példánkban használt alapértelmezett építmények (- Mscorlib.dll) mindig betöltődik a memóriába), akkor szükség e szerelni. Itt van, hogyan kell csinálni:
Miután férhetnek hozzá a modult, akkor akár tanulni bizonyos típusaiban (hogyan kell ezt csinálni, az első példában), vagy, hogy információt szerezzenek a fajta érdekes számunkra.
A következő kérdés folytatni fogjuk ismerős a Library .NET Framework Class Library osztályok. Majd nézd meg a tömbök (a System.Array osztály) és a gyűjtemények (System.Collections névtér).