Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Megjegyzés:
Ezt a tartalmat a Pearson Education, Inc. engedélyével nyomtatjuk újra a Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition című műből. Ezt a kiadást 2008-ban adták ki, és a könyvet azóta teljesen átdolgozták a harmadik kiadásban. Előfordulhat, hogy az oldalon található információk némelyike elavult.
A beágyazott típus egy másik típus hatókörén belül definiált típus, amelyet beágyazási típusnak nevezünk. A beágyazott típus hozzáféréssel rendelkezik a beágyazási típus összes tagához. Hozzáféréssel rendelkezik például a beágyazási típusban definiált magánmezőkhöz és a beágyazási típus összes felemelkedőjében definiált védett mezőkhöz.
Általában a beágyazott típusokat takarékosan kell használni. Ennek több oka is van. Egyes fejlesztők nem ismerik teljesen a koncepciót. Ezek a fejlesztők például problémákat tapasztalhatnak a beágyazott típusok változóinak deklarálásával kapcsolatban. A beágyazott típusok nagyon szorosan kapcsolódnak a beágyazási típusokhoz, és ezért nem alkalmasak általános célú típusokként.
A beágyazott típusok a legjobban alkalmasak a beágyazási típusok implementálási részleteinek modellezésére. A végfelhasználónak ritkán kell beágyazott típusú változókat deklarálnia, és szinte soha nem kell explicit módon példányosítania a beágyazott típusokat. Egy gyűjtemény enumerátora lehet például a gyűjtemény beágyazott típusa. Az enumerátorok általában a beágyazási típusuk alapján vannak példányosítva, és mivel számos nyelv támogatja a foreach utasítást, az enumerátorváltozókat ritkán kell deklarálnia a végfelhasználónak.
✔️ HASZNÁLJON beágyazott típusokat, ha a beágyazott típus és külső típus kapcsolata olyan, hogy a tag-hozzáférhetőségi szemantikák kívánatosak.
❌ NE használjon nyilvános beágyazott típusokat logikai csoportosítási szerkezetként; ehhez használjon névtereket.
❌ KERÜLJE a nyilvánosan közzétett beágyazott típusokat. Ez alól az egyetlen kivétel, ha a beágyazott típusú változókat csak olyan ritka helyzetekben kell deklarálni, mint az alosztályozás vagy más speciális testreszabási forgatókönyvek.
❌ NE használjon beágyazott típusokat, ha a típusra valószínűleg a benne lévő típuson kívül hivatkoznak.
Az osztályban definiált metódusnak átadott szám például nem definiálható beágyazott típusként az osztályban.
❌ NE használjon beágyazott típusokat, ha ügyfélkóddal kell példányosítania őket. Ha egy típus rendelkezik nyilvános konstruktorsal, valószínűleg nem kell beágyazni.
Ha egy típus példányosítható, az azt jelzi, hogy a típusnak önálló helye van a keretrendszerben (létrehozhatja, használhatja és megsemmisítheti anélkül, hogy a külső típust használták volna), ezért nem szabad beágyazni. A belső típusokat nem szabad széles körben újra felhasználni a külső típuson kívül, a külső típushoz való bármilyen kapcsolat nélkül.
❌ NE definiáljon beágyazott típust egy interfész tagjaként. Sok nyelv nem támogatja az ilyen szerkezetet.
© Részletek 2005, 2009 Microsoft Corporation. Minden jog fenntartva.
Újranyomva a Pearson Education, Inc. engedélyével, Krzysztof Cwalina és Brad Abrams Framework Design Guidelines: Konvenciók, Idiomák és Minták az Újrafelhasználható .NET Könyvtárak Számára, 2. kiadás című könyvéből, közzétéve 2008. október 22-én, a Addison-Wesley Professional által, a Microsoft Windows Fejlesztési Sorozat részeként.