Taula de continguts:
Definició: què significa Tipus anidat?
El tipus emplaçat, en C #, és un tipus declarat dins d'una classe o estructura existent. A diferència d’un tipus no imbricat, que es declara directament dins d’una unitat de compilació o d’un espai de noms, el tipus imbricat es defineix dins de l’àmbit del tipus que conté (o exterior).
El tipus imbricat s'utilitza només quan el seu àmbit, la visibilitat i la vida útil acabin dins del tipus que conté sense exposar-se a altres tipus. El membre enumerador dins d’un tipus de col·lecció s’acostuma a implementar com a tipus imbricat per iterar la col·lecció. Com a iterador, l'enumerador permet l'ús de la mateixa lògica del client per iterar la col·lecció, independentment de l'estructura subjacent de la col·lecció de dades.
En general, el tipus imbricat s'utilitza només en situacions en què pertany lògicament al tipus que conté. S’implementa quan el tipus que conté depèn completament del tipus imbricat que ajudi a encapsular els detalls d’implementació del tipus que conté. Sovint s’utilitza en escenaris en què el tipus que conté el tipus nidificat per a la seva implementació s’utilitza directament sense necessitat d’instanciar el seu tipus imbricat.
La Techopedia explica el tipus imbricat
Es pot accedir a un tipus imbricat des de qualsevol lloc del programa declarant-lo amb un nivell d'accés públic i utilitzant el seu nom completament qualificat.
Per exemple, AddressInformation pot ser un tipus nidificat declarat dins del tipus Employee i es pot accedir amb el seu nom completament qualificat, Employee.AddressInformation.
El tipus emplaçat té les propietats clau següents:
- Pot tenir diferents formes d’accessibilitat que inclouen interiors privats, públics, protegits, protegits i interns. Per defecte, té accessibilitat privada.
- Pot accedir a membres privats i protegits del tipus que conté, inclosos els membres privats i protegits heretats. Per accedir a aquests membres, s'ha de passar una instància del tipus que conté al tipus imbricat a través del constructor.
- Permet diversos nivells de nidificació, cosa que permet definir el bloc de codi d’una classe nidificada dins d’una altra.
- Pot heretar del tipus que conté i també es pot heretar.
- Els membres privats del tipus imbricat són invisibles al tipus que conté.
El tipus imbricat no s’ha d’utilitzar quan s’ha d’exposar públicament a la instància mitjançant el codi de client o si es fa referència directament al codi de client. No es pot utilitzar en lloc d'espai de noms per a construccions d'agrupació lògica.