pasar valores entre clases anidadas

16/01/2010 - 01:26 por Miguel Arenas | Informe spam
Soy nuevo en c sharp, y
Quisiera saber como puedo pasar valores de una clase a otra clase anidada.
les agradesco su ayuda.
Por ejemplo

Public class usuarios
{
private string _nomusuario;
private int _nomusuariolen;

Public class nomUsuario
{
public string value
{
get { return _nomusuario;}
}
public int len
{
get { return _nomusuariolen}
}


Lo que busco obtener

usuarios.nomusuario.value
usuarios.nomusuario.len
 

Leer las respuestas

#1 Alberto Poblacion
16/01/2010 - 09:01 | Informe spam
"Miguel Arenas" wrote in message
news:
Soy nuevo en c sharp, y
Quisiera saber como puedo pasar valores de una clase a otra clase anidada.
[...]
Lo que busco obtener

usuarios.nomusuario.value



Es un error común. Estás confundiendo la clase anidada con la
_instancia_ de la clase anidada. Aunque las definiciones de las clases se
aniden, los objetos creados a partir de esas clases *no* se anidan. Esto
significa que hay que instanciarlos por separado, igual que si fuesen clases
no anidadas, y que para acceder de un objeto al otro es necesario disponer
de una referencia a dicho objeto, exactamente igual que hay que hacer cuando
las definiciones de las clases no están anidadas.

Por ejemplo, para usar tu clase Usuarios, que dentro define un NomUsuario,
puedes hacer cosas como estas:

Usuarios u = new Usuarios();
Usuarios.NomUsuario nu = new Usuarios.NomUsuario();
nu.nomuusario = "pepe";
nu.len = 4;
u.NU = nu;

Esta es la definición de las clases que concuerda con las sentencias
anteriores:

public class Usuarios
{
public NomUsuario NU { get; set; }

public class NomUsuario
{
private string _nomusuario;
private int _nomusuariolen;
public string nomusuario
{
get { return _nomusuario;}
}
public int len
{
get { return _nomusuariolen}
}
}

Preguntas similares