none
Ver inmediatamente el valor asignado a una variable RRS feed

  • Pregunta

  • Buen día señores.

    Parece compleja la pregunta, pero creo que es sencilla. El asunto es que estoy concatenando valores para una variable: 

    Dim cadgrid1 As String = "clave_e|CLAVE|CYAN|" & "," & "nombre|NOMBRE|CYAN|" & "," & "horacosto|H-Costo|CYAN|" & "," & "horaventa|H-Venta|CYAN"

    Pero al ejecutar el programa, sólo me reconoce el primer elemento. Quiero saber si hay alguna forma de ir viendo el como cambia el valor de cadgrid1, según le voy moviendo al texto a concatenar. Es decir que no tenga que ejecutar la rutina para ver su valor, ya que está "algo lejos" del inicio, tengo que hacer varios movimientos para llegar al punto donde se usa esta variable.

    El resultado final debería ser así:

    "clave_e|CLAVE|CYAN|","nombre|NOMBRE|CYAN|","horacosto|H-Costo|CYAN|","horaventa|H-Venta|CYAN"

    Saludos y gracias....


    Ing. José Elías Pelayo

    viernes, 11 de enero de 2019 15:19

Respuestas

  • Tal como está escrito tu código fuente, forzosamente tiene que producir siempre el resultado final que indicas. No hay ninguna forma de que no produzca ese resultado, en el momento en que se ejecute la sentencia que lo calcula.

    Si en algún punto estás viendo un resultado distinto, no es problema de esa sentencia, sino que es problema de flujo de ejecución: ha tenido que ejecutarse alguna otra cosa en tu programa que haya metido otro valor en la variable después de (o en lugar de) ejecutar la sentencia que has indicado.

    La forma de depurar esto es usar el debugger y seguir la ejecución paso-a-paso.

    Si está "algo lejos" del inicio, la forma de estructurarlo es metiendo todo el cálculo en una subrutina que no tenga dependencias (o usando inyección de dependencias si no hay más remedio que tenerlas), y después se añade a la solución un proyecto de pruebas unitarias que tenga una prueba unitaria para esa subrutina. Recuerda que las pruebas unitarias también se pueden ejecutar paso a paso con el debugger si lo necesitas.

    Finalmente, la forma de ver todos los cambios de una variable es cambiar la variable por una propiedad, y entonces en el "set" de la propiedad se ven todos los cambios. Puedes poner un punto de ruptura en el set si te viene bien detener la ejecución con el debugger cada vez que haya un cambio para poder examinar el Stack y ver desde dónde se está haciendo el cambio.

    • Marcado como respuesta eliaspelayo viernes, 11 de enero de 2019 15:33
    viernes, 11 de enero de 2019 15:29

Todas las respuestas

  • Tal como está escrito tu código fuente, forzosamente tiene que producir siempre el resultado final que indicas. No hay ninguna forma de que no produzca ese resultado, en el momento en que se ejecute la sentencia que lo calcula.

    Si en algún punto estás viendo un resultado distinto, no es problema de esa sentencia, sino que es problema de flujo de ejecución: ha tenido que ejecutarse alguna otra cosa en tu programa que haya metido otro valor en la variable después de (o en lugar de) ejecutar la sentencia que has indicado.

    La forma de depurar esto es usar el debugger y seguir la ejecución paso-a-paso.

    Si está "algo lejos" del inicio, la forma de estructurarlo es metiendo todo el cálculo en una subrutina que no tenga dependencias (o usando inyección de dependencias si no hay más remedio que tenerlas), y después se añade a la solución un proyecto de pruebas unitarias que tenga una prueba unitaria para esa subrutina. Recuerda que las pruebas unitarias también se pueden ejecutar paso a paso con el debugger si lo necesitas.

    Finalmente, la forma de ver todos los cambios de una variable es cambiar la variable por una propiedad, y entonces en el "set" de la propiedad se ven todos los cambios. Puedes poner un punto de ruptura en el set si te viene bien detener la ejecución con el debugger cada vez que haya un cambio para poder examinar el Stack y ver desde dónde se está haciendo el cambio.

    • Marcado como respuesta eliaspelayo viernes, 11 de enero de 2019 15:33
    viernes, 11 de enero de 2019 15:29
  • Bueno, muchas gracias... a terquearle un rato mas....

    Saludos


    Ing. José Elías Pelayo

    viernes, 11 de enero de 2019 15:33