Problema al asignar valor a variable pública

15/10/2004 - 18:43 por David Fúnez | Informe spam
Hola;

Después del código generado de windows form tengo esto:

Public Property valor() As String
Get
Return valor
End Get
Set(ByVal Value As String)
valor = Value
End Set
End Property

Mas abajo le deseo asignar un valor

valor =Textbox1.Text 'son caracteres los que acepta

pero cuando ejecuto el form y deseo pasar el valor me da el sigiente error:

[Excepción no controlada del tipo 'System.StackOverflowException' en
Kardex.exe]

y el error lo marca aqui: Set(ByVal Value As String)

En que parte me estoy equivocando, Esto lo hago dentro del mismo form.

Saludos y gracias.

David Fúnez
Tegucigalpa, Honduras

"La Piratería Mata Las Ideas"
Desarrollador Cinco Estrellas Visual FoxPro

Preguntas similare

Leer las respuestas

#1 David Fúnez
15/10/2004 - 18:55 | Informe spam
Perdón;

ya lo resolví: Public Valor As String

Es que en esto de el aprendizaje nadie es profeta en su tierra.

Gracias.

David Fúnez
Tegucigalpa, Honduras

"La Piratería Mata Las Ideas"
Desarrollador Cinco Estrellas Visual FoxPro


"David Fúnez" wrote in message
news:%
Hola;

Después del código generado de windows form tengo esto:

Public Property valor() As String
Get
Return valor
End Get
Set(ByVal Value As String)
valor = Value
End Set
End Property

Mas abajo le deseo asignar un valor

valor =Textbox1.Text 'son caracteres los que acepta

pero cuando ejecuto el form y deseo pasar el valor me da el sigiente


error:

[Excepción no controlada del tipo 'System.StackOverflowException' en
Kardex.exe]

y el error lo marca aqui: Set(ByVal Value As String)

En que parte me estoy equivocando, Esto lo hago dentro del mismo form.

Saludos y gracias.

David Fúnez
Tegucigalpa, Honduras

"La Piratería Mata Las Ideas"
Desarrollador Cinco Estrellas Visual FoxPro



Respuesta Responder a este mensaje
#2 Eduardo A. Morcillo [MS MVP VB]
15/10/2004 - 19:00 | Informe spam
ya lo resolv: Public Valor As String

Es que en esto de el aprendizaje nadie es profeta en su tierra.



¿Cambiaste la propiedad por una variable publica? Eso es ir hacia atras ni
no hacia adelante. El problema que tenias con la propiedad es que desde el
Set estabas asignando otra vez a la propiedad, generando una llamada
recursiva. Lo que tienes que hacer es declarar una variable privada en la
clase y luego accedes a ella mediante la propiedad. ¿Por que? Porque asi
puedes hacer validaciones u otros procesos cuando se asigna un valor, lo
cual no puedes hacer si usas una variable publica. El codigo deberia ser
asi:

Private m_Valor As String

Public Property Valor() As String
Get
Return m_Valor
End Get
Set(ByVal value As String)
' Aqui podria hacerse una validacion
' o ejecutar otro codigo
m_Valor = value
End Set
End Property

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
Respuesta Responder a este mensaje
#3 David Fúnez
15/10/2004 - 19:18 | Informe spam
Gracias por sacarme de la duda, en VFP tampoco usamos variables públicas, y
si las usamos es rarísimo, mejor usamos propiedades.

Como dije "Es que en esto de el aprendizaje nadie es profeta en su tierra."

Saludos y muchas gracias, ahora si le entendí al asunto.


David Fúnez
Tegucigalpa, Honduras

"La Piratería Mata Las Ideas"
Desarrollador Cinco Estrellas Visual FoxPro


"Eduardo A. Morcillo [MS MVP VB]" <emorcilloATmvps.org> wrote in message
news:OGc%
> ya lo resolv: Public Valor As String
>
> Es que en esto de el aprendizaje nadie es profeta en su tierra.

¿Cambiaste la propiedad por una variable publica? Eso es ir hacia atras ni
no hacia adelante. El problema que tenias con la propiedad es que desde el
Set estabas asignando otra vez a la propiedad, generando una llamada
recursiva. Lo que tienes que hacer es declarar una variable privada en la
clase y luego accedes a ella mediante la propiedad. ¿Por que? Porque asi
puedes hacer validaciones u otros procesos cuando se asigna un valor, lo
cual no puedes hacer si usas una variable publica. El codigo deberia ser
asi:

Private m_Valor As String

Public Property Valor() As String
Get
Return m_Valor
End Get
Set(ByVal value As String)
' Aqui podria hacerse una validacion
' o ejecutar otro codigo
m_Valor = value
End Set
End Property

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


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida