clase en arraylist

31/08/2004 - 22:31 por Imac_Man | Informe spam
saludos amigos

se que se puede hacer algo asi

dim arrInstancias as arraylist
dim inst_clase1 as new Clase1
dim inst_clase2 as new Clase2

private sub AsignaInstancias()
arrInstancias.add (inst_clase1)
arrInstancias.add (inst_clase2)
end sub

pero yo quiero hacer algo asi o parecido

private sub AsignaInstancias()
arrInstancias.add (Clase1)
arrInstancias.add (Clase2)
end sub

El caso es que parece que no puedo agregar una clase a un arreglo si no es
como instancia.gracias por sus ideas.
Nota: Clase1 y Clase2 son clases

Preguntas similare

Leer las respuestas

#1 Eduardo A. Morcillo [MS MVP VB]
31/08/2004 - 22:42 | Informe spam
El caso es que parece que no puedo agregar una clase a un arreglo si
no es como instancia.gracias por sus ideas.



Las clases no son objetos (son tipos) y por lo tanto no puedes agregarlas a
una coleccion. Lo que si puedes hacer es esto:

arrInstancias.Add(New Clase1)
arrInstancias.Add(New Clase2)

Ya que estas creando una instancia y guardandola directamente en la lista
sin usar una variable intermedia.

¿Es eso lo que intentas hacer?

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
Respuesta Responder a este mensaje
#2 Imac_Man
31/08/2004 - 23:10 | Informe spam
de hecho lo que queria era meter la clase.pero ese dato esta bien
poderoso asi no tengo que usar variables intermedias. aunque me gustaria
poder meter la clase a algun arreglo.

gracias.

"Eduardo A. Morcillo [MS MVP VB]" <emorcilloATmvps.org> escribió en el
mensaje news:
> El caso es que parece que no puedo agregar una clase a un arreglo si
> no es como instancia.gracias por sus ideas.

Las clases no son objetos (son tipos) y por lo tanto no puedes agregarlas


a
una coleccion. Lo que si puedes hacer es esto:

arrInstancias.Add(New Clase1)
arrInstancias.Add(New Clase2)

Ya que estas creando una instancia y guardandola directamente en la lista
sin usar una variable intermedia.

¿Es eso lo que intentas hacer?

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo


Respuesta Responder a este mensaje
#3 Fco. Javier Bedoya
31/08/2004 - 23:38 | Informe spam
Hola:
Lo que te explica Euduardo, es que la clase en sí, no es un objeto, el
objeto es la instancia de la clase. Y en una colección solo puedes agregar
objetos.

Por ejemplo, tu en un array no puedes meter un Entero, no haces algo como :
arrInstancias.Add(Integer)
lo que haces es :
arrInstancias.Add(1)
que es equivalente a :
Dim Obj As Integer = 1
arrInstancias.Add(Obj)
o equivalente a :
Dim Obj As New Integer()
Obj = 1
arrInstancias.Add(Obj)

Un saludo.

Fco. Javier Bedoya
Web : http://javierbedoya.iespana.es
Para responder mis mensajes en las UseNet, quite ANTI SPAM
de la dirección de correo.
"Imac_Man" escribió en el mensaje
news:#
de hecho lo que queria era meter la clase.pero ese dato esta bien
poderoso asi no tengo que usar variables intermedias. aunque me gustaria
poder meter la clase a algun arreglo.

gracias.

"Eduardo A. Morcillo [MS MVP VB]" <emorcilloATmvps.org> escribió en el
mensaje news:
> > El caso es que parece que no puedo agregar una clase a un arreglo si
> > no es como instancia.gracias por sus ideas.
>
> Las clases no son objetos (son tipos) y por lo tanto no puedes


agregarlas
a
> una coleccion. Lo que si puedes hacer es esto:
>
> arrInstancias.Add(New Clase1)
> arrInstancias.Add(New Clase2)
>
> Ya que estas creando una instancia y guardandola directamente en la


lista
> sin usar una variable intermedia.
>
> ¿Es eso lo que intentas hacer?
>
> Eduardo A. Morcillo [MS MVP VB]
> http://www.mvps.org/emorcillo
>
>


Respuesta Responder a este mensaje
#4 Imac_Man
01/09/2004 - 00:58 | Informe spam
si la verdad, es que comprendo lo que uds me dicen...es solo que queria
poder asignar dos clases a un solo obejto (por si se podia, pero ya me
explicaron que no se puede) para poder declarar una propiedad del tipo del
objeto y asi yo poder seleccionar de que clase tomaria el tipo algo asi

public property MyProperty as VariableClase(x)


donde variable clase contenia las dos clases y luego poder cambiarle el tipo
a la propiedad a mi voluntad.luego lo que si me funciono fue esto

dim ArregloInstancia as ArrayList

ArregloInstancia.add(new Clase1)
ArregloInstancia.add(new Clase2)

public property MyProperty
return ArregloInstancia(x)

ArregloInstancia(x) = value
end property

y asi puedo en tiempo de ejecucion cambiar una property dependiendo de lo
que selecciono en otra propertypor ejemplo si la property trataba fehas
ahora trata numero de telefono.

pero cuando se le especifican los valores a la property cambiante esta
acepta los valores y los mantiene pero no los transmite a sus variables asi
que creo que es por que no he definido el tipo de la property como una clase
en especifico.

pero bueno ya vere que cosa me invento






"Fco. Javier Bedoya" escribió en el
mensaje news:
Hola:
Lo que te explica Euduardo, es que la clase en sí, no es un objeto, el
objeto es la instancia de la clase. Y en una colección solo puedes agregar
objetos.

Por ejemplo, tu en un array no puedes meter un Entero, no haces algo como


:
arrInstancias.Add(Integer)
lo que haces es :
arrInstancias.Add(1)
que es equivalente a :
Dim Obj As Integer = 1
arrInstancias.Add(Obj)
o equivalente a :
Dim Obj As New Integer()
Obj = 1
arrInstancias.Add(Obj)

Un saludo.

Fco. Javier Bedoya
Web : http://javierbedoya.iespana.es
Para responder mis mensajes en las UseNet, quite ANTI SPAM
de la dirección de correo.
"Imac_Man" escribió en el mensaje
news:#
> de hecho lo que queria era meter la clase.pero ese dato esta bien
> poderoso asi no tengo que usar variables intermedias. aunque me gustaria
> poder meter la clase a algun arreglo.
>
> gracias.
>
> "Eduardo A. Morcillo [MS MVP VB]" <emorcilloATmvps.org> escribió en el
> mensaje news:
> > > El caso es que parece que no puedo agregar una clase a un arreglo si
> > > no es como instancia.gracias por sus ideas.
> >
> > Las clases no son objetos (son tipos) y por lo tanto no puedes
agregarlas
> a
> > una coleccion. Lo que si puedes hacer es esto:
> >
> > arrInstancias.Add(New Clase1)
> > arrInstancias.Add(New Clase2)
> >
> > Ya que estas creando una instancia y guardandola directamente en la
lista
> > sin usar una variable intermedia.
> >
> > ¿Es eso lo que intentas hacer?
> >
> > Eduardo A. Morcillo [MS MVP VB]
> > http://www.mvps.org/emorcillo
> >
> >
>
>


Respuesta Responder a este mensaje
#5 Eduardo A. Morcillo [MS MVP VB]
01/09/2004 - 06:54 | Informe spam
Las propiedades no pueden cambiar de tipo pero lo que puedes hacer es que
sea de tipo Object. Como todo en .net deriva de Object puede usarse para
devolver cualquier tipo.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida