c#.net Acceso a objetos incluidos dentro de otros objetos
class clase1
{
int campo1;
int campo2;
private ArrayList listaClase1 = new ArrayList();
/*Constructor*/
public clase1(int var1, int var2)
{
campo1=var1;
campo2=var2;
for (int i=0;i<10;i++)
{
celdaListaClase1 celda= new celdaListaClase1(10,20);
listaClase1.Add(celda);
}/*Metemos 10 objetos en la listaClase1*/
}
}
public class celdaListaClase1
{
public int campo3;
public int campo4;
public celdaListaClase1( int var1, int var2)
{
campo3=var1;
campo4=var2;
}
}
Pues bien si nos creamos:
Clase1 ejemplo = new Clase1(20,40);
¿Como puedo acceder al campo1 del objeto ejemplo? Con ejemplo.Campo1 no me compila.
¿Como puedo acceder a los elementos del ArraList que esta contenido en ejemplo?
Muchas gracias.
{
int campo1;
int campo2;
private ArrayList listaClase1 = new ArrayList();
/*Constructor*/
public clase1(int var1, int var2)
{
campo1=var1;
campo2=var2;
for (int i=0;i<10;i++)
{
celdaListaClase1 celda= new celdaListaClase1(10,20);
listaClase1.Add(celda);
}/*Metemos 10 objetos en la listaClase1*/
}
}
public class celdaListaClase1
{
public int campo3;
public int campo4;
public celdaListaClase1( int var1, int var2)
{
campo3=var1;
campo4=var2;
}
}
Pues bien si nos creamos:
Clase1 ejemplo = new Clase1(20,40);
¿Como puedo acceder al campo1 del objeto ejemplo? Con ejemplo.Campo1 no me compila.
¿Como puedo acceder a los elementos del ArraList que esta contenido en ejemplo?
Muchas gracias.
No es visible porque por defecto se mercan como protected, y esos solo las hace visibles para las clases herederas.
Tienes dos opciones, o marcas como public todas las variables a las que quieras acceder o te creas una propiedad para esas. Puedes crear una propiedad como de solo lectura o como lectura escritura de la siguiente manera:
//solo lectura
private string _myprop;
public string MyProp
{
get{return this._myprop;}
}
//lectura -escritura
private string _myprop;
public string MyProp
{
get{return this._myprop;}
set{this._myprop = value;}
}
Con esto podras acceder a la variable como
Clase.MyProp;
Tienes dos opciones, o marcas como public todas las variables a las que quieras acceder o te creas una propiedad para esas. Puedes crear una propiedad como de solo lectura o como lectura escritura de la siguiente manera:
//solo lectura
private string _myprop;
public string MyProp
{
get{return this._myprop;}
}
//lectura -escritura
private string _myprop;
public string MyProp
{
get{return this._myprop;}
set{this._myprop = value;}
}
Con esto podras acceder a la variable como
Clase.MyProp;
