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).

Kapcsolódó cikkek