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

¿cómo asignar un valor a una variable variable?

Estas en el tema de ¿cómo asignar un valor a una variable variable? en el foro de .NET en Foros del Web. Bueno, quizás el título no sea muy apropiado, pero con un ejemplo seguramente se entienda mejor. Supóngase que se tienen 3 variables: int varible1, variable2, ...
  #1 (permalink)  
Antiguo 24/08/2009, 12:08
 
Fecha de Ingreso: octubre-2006
Mensajes: 53
Antigüedad: 17 años, 6 meses
Puntos: 0
¿cómo asignar un valor a una variable variable?

Bueno, quizás el título no sea muy apropiado, pero con un ejemplo seguramente se entienda mejor.

Supóngase que se tienen 3 variables:

int varible1, variable2, variable3, iterator;

Y quiero asignar un valor a cada una de ellas, pero solo a una de ellas en cada iteración de un bucle, del modo siguiente:

iterator=1;
while iterator<=3
variable[iterator] = iterator;
end while

De tal modo que el resultado final deseado es que variable1=1, variable2=2 y variable3=3.



Evidentemente poniendo variable[i] no funciona porque es para arrays, pero con ello quiero indicar si existe alguna forma de hacer que dependiendo del valor del iterator se le asigne el valor a una u otra variable dependiendo de a cual se quiera asignar el valor.

Este es el ejemplo sencillo con el que quería explicarlo, pero todo ello viene porque lo quiero aplicar al siguiente caso.

Tengo un formulario con una serie de filas de checkbox, cada una de ellas con 4 checkbox. Dependiendo del resultado de unas operaciones, por cada fila se tiene que dejar marcado un check de la fila. Cada checkbox está numerado.

Por ello había pensado crear un bucle while, con el que recorrer las filas de los checkbox, dentro del while hacer los calculos necesarios y una vez con el resultado, marcar el check que corresponda.

Tampoco quería alargarme más por si no más que aclarar consigo lo contrario, por lo que si hay alguna duda con lo que quiero hacer mejor se va planteando en su momento.




Muchas gracias.
Daimroc.
  #2 (permalink)  
Antiguo 24/08/2009, 12:23
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: ¿cómo asignar un valor a una variable variable?

pero agrego mas preguntas para poder ayudarte de mejor manera

-es winforms o webforms?
-creas ese control que contiene las n filas por columnas de checkboxes en runtime o en tiempo de disenio?
-quieres crear variables con un indicador de que es el i-esimo elemento o variable para ese caso, porque no usar reflection si es muy forzoso el que tu variable asociado a el se tenga que crear de ese modo
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #3 (permalink)  
Antiguo 25/08/2009, 00:35
 
Fecha de Ingreso: octubre-2006
Mensajes: 53
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: ¿cómo asignar un valor a una variable variable?

Es winform, una aplicación de escritorio.

Los checkbox los creo en tiempo de diseño, aunque no es una agrupación de checkboxs, sino los checkbox puesto indivudualmente, aunque ordenados en pantalla. Es decir, no creo un control que agrupo a todos les checkboxs.

Por tanto, usar reflection en este caso tal vez no sea lo más adecuado porque se crea todo en tiempo de diseño.




Gracias.
Daimroc.
  #4 (permalink)  
Antiguo 25/08/2009, 10:05
 
Fecha de Ingreso: agosto-2009
Mensajes: 4
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: ¿cómo asignar un valor a una variable variable?

No se me ocurre una forma de hacerlo tal como pides, a menos que sea por medio de arreglos.

O bien... si realmente necesitas hacer algo parecido y no quieres manejar arrays, se me ocurre recorrer la fila y encontrar la columna deseada, una vez que sabes la columna puedes asignar un valor con CASE CheckBox1_Fila1 Then Variable1=1... CASE CheckBox2_Fila1 Then Variable2=2
  #5 (permalink)  
Antiguo 25/08/2009, 15:54
 
Fecha de Ingreso: septiembre-2006
Mensajes: 328
Antigüedad: 17 años, 8 meses
Puntos: 3
Respuesta: ¿cómo asignar un valor a una variable variable?

pepeman82 tiene razón.... Pero si interpreté bien lo que dijiste y no tienes los checkboxes dentro de ningún grid (como un datagrid) tendrías que tener alguna forma de acceder programáticamente a tu número de filas y columnas. Y no deberías depender del 'NOMBRE' de tus variables por que no tienes forma de acceder a ellas a menos que vayas a usar reflexión (lo cuál sería matar un mosquito con un cañón).

Si optas por crear un datagrid las filas y columnas ya vienen numeradas así que puedes decir, con tu ejemplo sencillo:

Código:
for i as integer = 0 to 3
    Me.myGrid.Colmuns(i) = i;
Next
lo mismo para los rows
  #6 (permalink)  
Antiguo 25/08/2009, 17:31
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: ¿cómo asignar un valor a una variable variable?

esto me da una idea ahora q lo mencioana pedro_cesar, porq no usar un TableLayoutPanel para contener cada checkbox en una estructura filaxcolumna y asi te evitas de tantos problemas.
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #7 (permalink)  
Antiguo 27/08/2009, 00:47
 
Fecha de Ingreso: octubre-2006
Mensajes: 53
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: ¿cómo asignar un valor a una variable variable?

Hola:

con el tablelayoupanel puede que me facilite las cosas, pero he estado mirando y no he conseguido encontrar la forma de ir al objeto de una determinada celda.

Es decir, supóngase un tablelayoutpanel de 2 filas y dos columnas en las que tengo los 4 checks (matriz sencilla de 4 elementos, en mi caso serían más). ¿Existe alguna forma de hacer esto?:

mitable.controls(i,j).chechked = true;

La sintaxis es incorrecta, pero es para mostrar la idea.

Es decir, indicando la celda desea, acceder al objeto y poder manipularlo.

Porque esto lo he conseguido haciendo un arraay de dos dimesiones de objetos Checkbox, pero claro, manulamente tengo que indicar por código en cada posición de ese array, qué checkbox tiene que ir. Lo cual por código es bastante tedioso pues son mucho, y creo que con el tablelayoutpanel podría ahorrarme trabajo y quedaría mejor.



Gracias.
Daimroc.
  #8 (permalink)  
Antiguo 27/08/2009, 06:29
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: ¿cómo asignar un valor a una variable variable?

mitable.controls(i,j).chechked = true;
directamente es convertido en un Control asi q hay q hacer un casting a algo com

((CheckBox)mitable.controls(i,j)).checked = true;
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #9 (permalink)  
Antiguo 27/08/2009, 10:21
 
Fecha de Ingreso: octubre-2006
Mensajes: 53
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: ¿cómo asignar un valor a una variable variable?

El problema es que no me deja acceder al control en concreto con la sintáxis miTable.Controls(i,j), y no he encontrado la forma de hacerlo.

Cuando lo pongo, me da el error que no se puede usar como método el miembro Controls.

¿Cómo se accede a un elemento concreto del panel?.




Gracias.
Daimroc.
  #10 (permalink)  
Antiguo 27/08/2009, 10:38
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: ¿cómo asignar un valor a una variable variable?

tableLayoutPanel1.GetControlFromPosition(columna, fila);
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #11 (permalink)  
Antiguo 27/08/2009, 13:15
 
Fecha de Ingreso: octubre-2006
Mensajes: 53
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: ¿cómo asignar un valor a una variable variable?

Funciona perfecntamente. Muchas gracias.

El caso es que estaba buscando por los métodos y propiedades de Controls y no veía nada.

Así es más fácil que forzar el mapeo utilizando una matriz de tipo CheckBox.



Gracias.
Daimroc.
  #12 (permalink)  
Antiguo 27/08/2009, 14:51
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: ¿cómo asignar un valor a una variable variable?

si, puede ser mas facil pero al final en tu array bidimensional de controles es aun mejor el control y menos margen de error en los casteos. que bueno que funciono.
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #13 (permalink)  
Antiguo 28/08/2009, 04:02
 
Fecha de Ingreso: octubre-2006
Mensajes: 53
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: ¿cómo asignar un valor a una variable variable?

bueno, en este caso todos los controles son de tipo CheckBox, por tanto el problema con el cast no es un problema, ya que no tengo que comprobar nada, simplemente hacer directamente el cast a Cehckbox.




Saludos.
Daimroc.
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 09:14.