Foros del Web » Programación para mayores de 30 ;) » .NET »

Cómo referenciar un Tipo Primitivo

Estas en el tema de Cómo referenciar un Tipo Primitivo en el foro de .NET en Foros del Web. Hola. Tengo un pequeño problema de ésos que no te esperas. En resumen: instancio y llamo un formulario 'B' desde otro 'A'. Pero necesito pasarle ...
  #1 (permalink)  
Antiguo 05/06/2013, 08:23
 
Fecha de Ingreso: agosto-2006
Mensajes: 15
Antigüedad: 17 años, 8 meses
Puntos: 0
Pregunta Cómo referenciar un Tipo Primitivo

Hola. Tengo un pequeño problema de ésos que no te esperas.
En resumen: instancio y llamo un formulario 'B' desde otro 'A'. Pero necesito pasarle un par de variables por Referencia (UInteger y Boolean), para que 'B' las modifique y cuando regrese a 'A' tengan los nuevos valores.

Lo hago de la siguiente manera:

Código:
FORMULARIO 'B'
Private Valor1 As UIntenger Private Valor2 As Boolean Public Sub New(ByRef _Valor1 As UInteger, ByRef _Valor2 As Boolean) InitializeComponent() Valor1 = _Valor1 Valor2 = _Valor2 End Sub Private Sub Proceso() Valor1 = 333 Valor2 = True Me.Close End Sub
FORMULARIO 'A'
Dim FormB As New 'B' (Valor1, Valor2) FormB.ShowDialog()
Valor1 y Valor2 siguen teniendo el mismo contenido de antes de llamar al formulario 'B'

Si por ejemplo paso por referencia un ArrayList, sí lo toma como referencia y lo modifica, pero parece que los Tipos Primitivos no hay manera de referenciarlos de esta manera.

También probé con pasar ambas variables como tipo Object, pero tampoco funciona.

En resumen necesito saber cómo asignar a una variable la referencia de otra variable primitiva, y NO que cree una copia:

Valor1 = < REF--> _Valor1 >
Valor2 = < REF--> _Valor2 >

Gracias.
  #2 (permalink)  
Antiguo 05/06/2013, 16:15
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: Cómo referenciar un Tipo Primitivo

No se puede hacer lo que quieres tal y como lo estás haciendo.

Al pasar por referencia una variable de tipo valor lo que se hace es que el parámetro se pasa una referencia a la variable, pero esta referencia no puede asignarse a otras variables (porque implícitamente se desreferencia)

Código vb:
Ver original
  1. Public Sub New(ByRef _Valor1 As UInteger, ByRef _Valor2 As Boolean)
  2. InitializeComponent()
  3.  
  4. 'Si cambias el valor directamente si cambia en el formulario A
  5. _Valor1 = 5
  6.  
  7. Valor1 = _Valor1
  8.  
  9. 'El valor de la variable Valor1 en el formulario seguirá siendo 5
  10. Valor1 = 10
  11.  
  12.  
  13. End Sub

Etiquetas: tipo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:48.