por que no se ejecutan los constructores?

21/11/2003 - 18:07 por David Porqueras Araque | Informe spam
Pues eso que tengo este pequeño listado y cuando creo los objetos como si
fuera Arrays no se me ejecutan los constructores, encanvio si los creo en
'solitario' (obj a=new obj()) funciona sin problemas.


alguien me puede explicar por que?

muchas gracias
Fdo. el novatillo

using System;

using System.IO;

using System.Text;

namespace Arbol

{

/// <summary>

/// Descripción breve de Class1.

/// </summary>

class Class1

{

/// <summary>

/// Punto de entrada principal de la aplicación.

/// </summary>

[STAThread]

static void Main(string[] args)

{

string [] arr;

arr=Directory.GetDirectories("c:\\");

Arbol [] b=new Arbol[1];

}

}

class Arbol

{

public int dirs;

public Rama [] dir=new Rama[4];

public Arbol()

{

Console.WriteLine("Constructor Rama por defecto");

}

}

class Rama

{

public string dir;

public Rama subdir;

public Rama()


{

Console.WriteLine("Constructor Rama por defecto");

}

}}

Preguntas similare

Leer las respuestas

#1 David Porqueras Araque
21/11/2003 - 18:10 | Informe spam
fuera Arrays no se me ejecutan los constructores, encanvio si los creo en


si... me he dado cuenta de la falta de ortografia y del espacio ;)
Respuesta Responder a este mensaje
#2 David Porqueras Araque
21/11/2003 - 18:49 | Informe spam
Fale , con mi listado solo he Reservado memoria para el Array, ahora tengo
que Reservar y inicializar cada uno de los objetos ¿no?


usea

dir[1]=new Rama();


correcto?

Gracias


"David Porqueras Araque" escribió en el mensaje
news:
Pues eso que tengo este pequeño listado y cuando creo los objetos como si
fuera Arrays no se me ejecutan los constructores, encanvio si los creo en
'solitario' (obj a=new obj()) funciona sin problemas.


alguien me puede explicar por que?

muchas gracias
Fdo. el novatillo

using System;

using System.IO;

using System.Text;

namespace Arbol

{

/// <summary>

/// Descripción breve de Class1.

/// </summary>

class Class1

{

/// <summary>

/// Punto de entrada principal de la aplicación.

/// </summary>

[STAThread]

static void Main(string[] args)

{

string [] arr;

arr=Directory.GetDirectories("c:\\");

Arbol [] b=new Arbol[1];

}

}

class Arbol

{

public int dirs;

public Rama [] dir=new Rama[4];

public Arbol()

{

Console.WriteLine("Constructor Rama por defecto");

}

}

class Rama

{

public string dir;

public Rama subdir;

public Rama()


{

Console.WriteLine("Constructor Rama por defecto");

}

}}


Respuesta Responder a este mensaje
#3 Klaus H. Probst
22/11/2003 - 09:32 | Informe spam
"David Porqueras Araque" wrote in message
news:
dir[1]=new Rama();

correcto?



Si. System.Array tiene un metodo Initialize() pero es solo para tipos
primitivos como int. Si tienes valores de referencia necesitas
inicializarlos uno por uno.

La otra forma es algo asi:

MyClass[] m = new MyClass[3]{new MyClass(), new MyClass(), new MyClass() };

Pero si tienes muchos elementos la cosa se pone fea =)


____________________
Klaus H. Probst, MVP
http://www.vbbox.com/
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida