CLR: .Net / Mono / Boo / Otros CLR > VB .NET
Leer variable de otra clase
rogalde:
Hola! tuve que poner lo ultimo que me dijiste.
Y ahora lo que me pasa es que en la clase opcserver me sale MessageBox con el valor correcto.
--- Código: vb.net --- Public Property regcampo1() As Int32 Get Return Campo1 End Get Set(ByVal value As Int32) Campo1 = value System.Windows.Forms.MessageBox.Show(Campo1) End Set End Property
Pero cuando lo pongo en donde quiero que me coja la variable, osea en la linea 187 creo que era me sale que vale cero. pq??
Gracias!!
javierkcjm:
hola,
una vez que le asignas el valor a la variable campo1 con la propiedad como te dije no es necesario volver a asiganarle el mismo valor en la linea 187 osea ya no tienes q poner "campo1=" ya que como instancias la clase y asiganas valor al campo1 con la propiedad durante el tiempo de ejecucion de tu proyecto la variable en esa referencia de clase mantendra el valor asi que podras usarlo en cualquien procedimiento de la clase opcserver, espero haberme hecho entender
saludos cordiales
JC
rogalde:
hola de nuevo. sisi te entendí. Pero.. lo que yo te decía es que justo en esta estructura donde esta lo del Messagebox, me retorna el valor correcto. Pero en la linea esa 187 hago lo del MesageBox igual que en el código de abajo y me sale que la variable vale 0.
La variable la tengo declarada como Public Campo1 As Integer
--- Código: vb.net --- Public Property regcampo1() As Int32 Get Return Campo1 End Get Set(ByVal value As Int32) Campo1 = value System.Windows.Forms.MessageBox.Show(Campo1) End Set End Property
javierkcjm:
mmm es raro ya que una vez que muestras el valor con el messagebox en la propiedad deberia mostrarlo en la otra funcion, pero no seria raro que en alguna linea este reescribiendo nuevamente la variable o este volviendo a declararla, te recomiendo que ejecutes el proyecto en depuracion paso a paso(F11) para poder observar si en algun momento del proyecto se sobreescribe la variable
saludos cordiales
JC
rogalde:
Si la verdad que a mi también me extraña mucho. He hecho este ejemplo y me funciona perfecto. Haré lo que me del modo depuración.
Gracias!! de verdad!
--- Código: vb.net ---Public Class Form1 Public v1 As Integer Public pepe As New form2 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load v1 = 44 pepe .regcampo1 = 696969 pepe .pruebaFuncion() End Sub End Class Public Class form2 Public Campo1 As Integer Public Property regcampo1() As Int32 Get Return Campo1 End Get Set(ByVal value As Int32) Campo1 = value End Set End Property Public Sub pruebaFuncion() System.Windows.Forms.MessageBox.Show(Campo1) End Sub End Class
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa