Clases anidadas
Una clase anidada es una
clase decladara dentro del ámbito de otra. El anidamiento de clases nos
proporciona tres beneficios:
- Una clase anidada puede acceder a cualquier miembro del la clase que
lo contiene, independiemtemente de los modificadores de acceso que este
posea.
- Una clase anidada puede ser ocultada, si interesa, mediante el uso
de modificadores de acceso.
- Para acceder a una clase anidada desde fuera de la clase que la
engloba habremos de utilizar el nombre de la clase que la engloba.
// anidada.cs
using System;
class A
{
private int x =
3; // miembro privado (acceso por
defecto)
protected
internal class Anidada
{
public
void Prueba()
{
A a = new A();
Console.WriteLine(a.x); //
podemos acceder a miembros privados
}
}
}
class B
{
static void
Main()
{
A.Anidada anidada =
new A.Anidada()
anidada.Prueba();
}
}
DEMOSTRACIÓN
Crearemos una clase denominada Catalogo y dentro de ella añadiremos dos clases más, una llamada TipoCatalogo y otra Precio
Y en nuestra clase principal colocaremos el método "infoCatalogo"
En el Main instanciaremos la clase Catalogo y las sub clases que están dentro de ella de la siguiente forma:
El resultado por pantalla