Typ zagnieżdżony

Autor: Lewis Jackson
Data Utworzenia: 8 Móc 2021
Data Aktualizacji: 15 Móc 2024
Anonim
C# Programming Tutorial - Nested Types
Wideo: C# Programming Tutorial - Nested Types

Zawartość

Definicja - Co oznacza typ zagnieżdżony?

Typ zagnieżdżony w C # to typ zadeklarowany w ramach istniejącej klasy lub struktury. W przeciwieństwie do typu nie zagnieżdżonego, który jest zadeklarowany bezpośrednio w jednostce kompilacji lub w przestrzeni nazw, typ zagnieżdżony jest zdefiniowany w zakresie typu zawierającego (lub zewnętrznego).

Typ zagnieżdżony jest używany tylko wtedy, gdy jego zakres, widoczność i czas życia kończą się w typie zawierającym, bez narażania się na inne typy. Element wyliczający w ramach typu kolekcji jest zwykle implementowany jako typ zagnieżdżony w celu iteracji po kolekcji. Jako iterator moduł wyliczający umożliwia stosowanie tej samej logiki po stronie klienta do iteracji kolekcji, niezależnie od struktury kolekcji leżącej u podstaw.

Zasadniczo typ zagnieżdżony jest używany tylko w sytuacjach, w których logicznie należy do typu zawierającego. Jest on implementowany, gdy typ zawierający jest całkowicie zależny od typu zagnieżdżonego, co pomaga zawrzeć szczegóły implementacji typu zawierającego. Jest często używany w scenariuszach, w których typ zawierający, który ma typ zagnieżdżony do jego implementacji, jest używany bezpośrednio, bez żadnych wymagań dotyczących tworzenia jego typu zagnieżdżonego.


Wprowadzenie do Microsoft Azure i Microsoft Cloud | W tym przewodniku dowiesz się, na czym polega przetwarzanie w chmurze i jak Microsoft Azure może pomóc w migracji i prowadzeniu firmy z chmury.

Techopedia wyjaśnia typ zagnieżdżony

Dostęp do typu zagnieżdżonego można uzyskać z dowolnego miejsca w programie, deklarując go jako publiczny poziom dostępności i używając jego w pełni kwalifikowanej nazwy.

Na przykład AddressInformation może być zagnieżdżonym typem zadeklarowanym w ramach typu Employee i można uzyskać do niego dostęp przy użyciu jego w pełni kwalifikowanej nazwy, Employee.AddressInformation.

Typ zagnieżdżony ma następujące kluczowe właściwości:

  • Może mieć różne formy dostępności, w tym prywatne, publiczne, chronione, chronione wewnętrznie i wewnętrznie. Domyślnie ma on prywatną dostępność.
  • Może uzyskiwać dostęp do prywatnych i chronionych członków typu zawierającego, w tym do dziedziczonych prywatnych i chronionych członków. Aby uzyskać dostęp do tych elementów, instancja typu zawierającego musi zostać przekazana do typu zagnieżdżonego przez jego konstruktor.
  • Pozwala na wiele poziomów zagnieżdżania, co pozwala na zdefiniowanie bloku kodu jednej zagnieżdżonej klasy w innym.
  • Może dziedziczyć po typie zawierającym, a także może być dziedziczony.
  • Prywatni członkowie typu zagnieżdżonego są niewidoczni dla typu zawierającego.


Typu zagnieżdżonego nie należy używać, gdy musi być publicznie ujawniony w celu utworzenia instancji przez kod klienta lub jeśli występuje w nim odwołanie bezpośrednio w kodzie klienta. Nie można go używać zamiast przestrzeni nazw dla logicznych konstrukcji grupujących.