valores en clase se limpian

31/08/2004 - 18:36 por Imac_Man | Informe spam
saludos

tengo una clase con dos variables una tipo boolean y otra integer, cada una
la alimento con una property del tipo correspondiente, el caso es que luego
creo una instancia de esa clase en otra a la que llamare clase2, mi
intencion es que en esta clase dos pueda usar los valores que llene en la
Clase1

la idea es esta en la clase2

dim blnValor1 as boolean
dim intValor2 as integer

dim myclase1 as new clClase1

blnValor1 = myclase1.blnVariable
strValor2 = myclase1.intVariable

el caso es que estas variables vienen vacias, aunque yo les haya asignado
valoresporque se pierden los valores desde una clase a la otra si las
variables son publicas en la Clase1 y ya les he asignado valores mediante
propertiescomo lo puedo solventar.

gracias

Preguntas similare

Leer las respuestas

#1 Eduardo A. Morcillo [MS MVP VB]
31/08/2004 - 18:59 | Informe spam
la idea es esta en la clase2

dim blnValor1 as boolean
dim intValor2 as integer

dim myclase1 as new clClase1

blnValor1 = myclase1.blnVariable
strValor2 = myclase1.intVariable



¿Pero las variables no estan en clase2?

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
Respuesta Responder a este mensaje
#2 Imac_Man
31/08/2004 - 19:16 | Informe spam
en la clase1 es asi mas o menos

class Clase1
public intValor1 as interger
public blnValor2 as boolean

public property Propiedad1 as integer
Get
Return intValor1
End Get
Set(ByVal Value As Int16)
intValor1= Value
End Set
End Property
'luego la property de la boolean...para no alargar el cuento.
end class

LUEGO EN LA CLASE 2 QUE DE HECHO ES UN USERCONTROL
private x as integer
private y as boolean

dim inst_clase1 as new Clase1
x = inst_clase1.intValor1
y = inst_clase2.blnValor2

Aqui las variables ya vienen vacias...y segun recuerdo o entiendo deberian
traer valores si ya se les asigno mendiante la property, lo extraño es que
si yo veo las properties, estas mantiene sus valores en tiempo de ejecucion
pero las variables no toman nada del valor, pareciera que toman su valor por
omision.



"Eduardo A. Morcillo [MS MVP VB]" <emorcilloATmvps.org> escribió en el
mensaje news:%
> la idea es esta en la clase2
>
> dim blnValor1 as boolean
> dim intValor2 as integer
>
> dim myclase1 as new clClase1
>
> blnValor1 = myclase1.blnVariable
> strValor2 = myclase1.intVariable

¿Pero las variables no estan en clase2?

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


Respuesta Responder a este mensaje
#3 Eduardo A. Morcillo [MS MVP VB]
31/08/2004 - 19:55 | Informe spam
dim inst_clase1 as new Clase1
x = inst_clase1.intValor1
y = inst_clase2.blnValor2



Si eso es exactamente lo que estas haciendo es logico ya que estas creando
una nueva instancia de la clase y no le has asignado nada todavia. Por otro
lado, no es bueno que las variables sean publicas, mejor las haces privadas
y accedes a ellas mediante propiedades.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
Respuesta Responder a este mensaje
#4 Leonzio
31/08/2004 - 19:55 | Informe spam
pero en ningun momento se ve en el codigo que enviastes
que le estas asignando valores a las propiedades.
es decir:

dim inst_clase1 as new Clase1

inst_clase1.intValor1 = 15
inst_clase2.blnValor2 = True



en la clase1 es asi mas o menos

class Clase1
public intValor1 as interger
public blnValor2 as boolean

public property Propiedad1 as integer
Get
Return intValor1
End Get
Set(ByVal Value As Int16)
intValor1= Value
End Set
End Property
'luego la property de la boolean...para no alargar el


cuento.
end class

LUEGO EN LA CLASE 2 QUE DE HECHO ES UN USERCONTROL
private x as integer
private y as boolean

dim inst_clase1 as new Clase1
x = inst_clase1.intValor1
y = inst_clase2.blnValor2

Aqui las variables ya vienen vacias...y segun recuerdo o


entiendo deberian
traer valores si ya se les asigno mendiante la property,


lo extraño es que
si yo veo las properties, estas mantiene sus valores en


tiempo de ejecucion
pero las variables no toman nada del valor, pareciera que


toman su valor por
omision.



"Eduardo A. Morcillo [MS MVP VB]" <emorcilloATmvps.org>


escribió en el
mensaje news:%
> la idea es esta en la clase2
>
> dim blnValor1 as boolean
> dim intValor2 as integer
>
> dim myclase1 as new clClase1
>
> blnValor1 = myclase1.blnVariable
> strValor2 = myclase1.intVariable

¿Pero las variables no estan en clase2?

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






.

Respuesta Responder a este mensaje
#5 Tristan
31/08/2004 - 20:04 | Informe spam
Perdón por meterme, pero en tu código:

dim inst_clase1 as new Clase1
x = inst_clase1.intValor1
y = inst_clase2.blnValor2

Parece lógico que intValor1 y blnValor2 no tengan valor. No les has asignado
ningún valor a no ser que hayas olvidado escribirnos el constructor, que es
precisamente lo importante de la Clase1 de cara a tu problema.

¿Es posible que no estés asignando su valor predeterminado?. El atributo
DefaultValue solo sirve para asignar el valor por defecto en tiempo de
diseño, pero debe corresponderse con una inicialización apropiada en el
constructor o en la declaración de la variable.

Por otro lado, supongo que lo de hacer públicas las variables de las
propiedades lo has puesto a efectos de prueba, por que desde luego no es
nada recomendable. De hecho, convertiría las propiedades en inútiles.

Juan Carlos Badiola
MVP - C#
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida