Problema acceso ArrayList

20/03/2006 - 11:58 por alberto | Informe spam
Tengo un ArrayList (documentos) que contiene instancias de una clase
determinada (documento). Si escribo el siguiente código:

((documento)documentos).valoración = x;

Me da un error. Esta misma instrucción en la versión anterior de vs
funcionaba correctamente.
¿A qué es debido?
Gracias

Preguntas similare

Leer las respuestas

#1 Eduardo A. Morcillo [MS MVP VB]
20/03/2006 - 15:40 | Informe spam
Intentas hacer un cast de ArrayList a documento. Creo que se te ha olvidado
colocar el indice del elemento al que quieres acceder:

((documento) documentos[indice]).valoración = x;

Esta misma instrucción en la versión anterior de vs funcionaba
correctamente.



¿Estas usando la version 2005? Si es asi te conviene usar List<T> y no
tendras que hacer casts.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
http://mvp.support.microsoft.com/pr...4EF5A4191C
Respuesta Responder a este mensaje
#2 Alberto
20/03/2006 - 18:58 | Informe spam
Sí, se me olvidó indicar el índice del elemento. Consulté lo del List pero
me exige que indique una capacidad inicial y eso es precisamente lo que no
quiero hacer. En cualquier caso me gustaría saber porque antes compilaba el
ejemplo que indiqué antes y ahora no.
Gracias.

"Eduardo A. Morcillo [MS MVP VB]" <emorcillo .AT. mvps.org> escribió en el
mensaje news:%
Intentas hacer un cast de ArrayList a documento. Creo que se te ha
olvidado colocar el indice del elemento al que quieres acceder:

((documento) documentos[indice]).valoración = x;

Esta misma instrucción en la versión anterior de vs funcionaba
correctamente.



¿Estas usando la version 2005? Si es asi te conviene usar List<T> y no
tendras que hacer casts.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
http://mvp.support.microsoft.com/pr...4EF5A4191C

Respuesta Responder a este mensaje
#3 Eduardo A. Morcillo [MS MVP VB]
20/03/2006 - 20:53 | Informe spam
Consulté lo del List pero me exige que indique una capacidad inicial y eso
es
precisamente lo que no quiero hacer.



List no precisa de una capacidad inicial, aunque es recomendable indicar una
(lo mismo para un ArrayList). Ejemplo:

List<documento> documentos = new List<documento>();
documentos.Add(new documento());
documentos[0].valoracion = 1;

En cualquier caso me gustaría saber porque
antes compilaba el ejemplo que indiqué antes y ahora no.



Dudo que eso haya compilado, y si compilo seguramente documentos era de tipo
documento y no ArrayList o te hubiera dado un error en tiempo de ejecucion.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
http://mvp.support.microsoft.com/pr...4EF5A4191C
Respuesta Responder a este mensaje
#4 Alberto
21/03/2006 - 09:44 | Informe spam
Lo acabo de compilar y funciona correctamente en la versión anterior. Es que
no tiene porque no funcionar. Simplemente se recupera un objeto de una
colección de objetos, se le dice de qué tipo es haciendo un cast y se
modifica un miembro. Lo realmente extraño es que no funcione en vs 2005.

"Eduardo A. Morcillo [MS MVP VB]" <emorcillo .AT. mvps.org> escribió en el
mensaje news:
Consulté lo del List pero me exige que indique una capacidad inicial y
eso es
precisamente lo que no quiero hacer.



List no precisa de una capacidad inicial, aunque es recomendable indicar
una (lo mismo para un ArrayList). Ejemplo:

List<documento> documentos = new List<documento>();
documentos.Add(new documento());
documentos[0].valoracion = 1;

En cualquier caso me gustaría saber porque
antes compilaba el ejemplo que indiqué antes y ahora no.



Dudo que eso haya compilado, y si compilo seguramente documentos era de
tipo documento y no ArrayList o te hubiera dado un error en tiempo de
ejecucion.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
http://mvp.support.microsoft.com/pr...4EF5A4191C

Respuesta Responder a este mensaje
#5 Octavio Hernandez
21/03/2006 - 09:55 | Informe spam
Alberto,

¿Qué dice exactamente ese mensaje de error?

Slds - Octavio


"Alberto" escribió en el mensaje
news:
Lo acabo de compilar y funciona correctamente en la versión anterior. Es
que no tiene porque no funcionar. Simplemente se recupera un objeto de una
colección de objetos, se le dice de qué tipo es haciendo un cast y se
modifica un miembro. Lo realmente extraño es que no funcione en vs 2005.

"Eduardo A. Morcillo [MS MVP VB]" <emorcillo .AT. mvps.org> escribió en el
mensaje news:
Consulté lo del List pero me exige que indique una capacidad inicial y
eso es
precisamente lo que no quiero hacer.



List no precisa de una capacidad inicial, aunque es recomendable indicar
una (lo mismo para un ArrayList). Ejemplo:

List<documento> documentos = new List<documento>();
documentos.Add(new documento());
documentos[0].valoracion = 1;

En cualquier caso me gustaría saber porque
antes compilaba el ejemplo que indiqué antes y ahora no.



Dudo que eso haya compilado, y si compilo seguramente documentos era de
tipo documento y no ArrayList o te hubiera dado un error en tiempo de
ejecucion.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
http://mvp.support.microsoft.com/pr...4EF5A4191C





Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida