Almacenar nombre de variable en String en VB.NET

votos
3

Intento almacenar los nombres de algunas variables dentro de cadenas. Por ejemplo:

Dim Foo1 as Integer
Dim Foo1Name as String

' -- Do something to set Foo1Name to the name of the other variable --

MessageBox.Show(Foo1Name &  is the variable you are looking for.)
' Outputs:
' Foo1 is the variable you are looking for.

Esto ayudaría con algunas depuraciones en las que estoy trabajando.

Publicado el 09/12/2008 a las 16:31
fuente por usuario
En otros idiomas...                            


5 respuestas

votos
5

Bueno, puedes simplemente establecer Foo1Name = "Foo1" - pero sospecho que no es lo que buscas.

¿Cómo sabrías de qué variable estás tratando de encontrar el nombre? ¿Cuál es la imagen más grande? Lo que quiere puede ser posible con la reflexión, si estamos hablando de variables no locales, pero sospecho que o no es factible, o hay una mejor manera de atacar el problema en primer lugar.

Respondida el 09/12/2008 a las 16:36
fuente por usuario

votos
2

¿ Este ejemplo de msdn usando reflection ayuda?

Respondida el 09/12/2008 a las 16:44
fuente por usuario

votos
1

Creo que esto realmente depende de lo que intentas depurar. Dos cosas posibles para mirar son las clases Reflection y StackTrace . Dicho esto, cuando se compila el programa, el compilador y el tiempo de ejecución no garantizan que esos nombres deban ser consistentes con el programa original.

Este es especialmente el caso de las compilaciones de depuración vs. liberación. El objetivo de los archivos .PDB (símbolos) en la versión de depuración es incluir más información sobre el programa original. Para aplicaciones nativas de C / C ++, se recomienda encarecidamente que genere símbolos para cada compilación (depuración + versión) de su aplicación para ayudar con la depuración. En .NET esto es menos problemático ya que hay funciones como Reflection. IIRC John Robbins recomienda que siempre genere símbolos para proyectos .NET también.

También puede encontrar útil el blog de Mike Stall y las muestras del depurador gestionado .

Respondida el 09/12/2008 a las 16:55
fuente por usuario

votos
1

Una solución sería usar una matriz asociativa para almacenar sus variables. Una vez, hice esto en .Net, pero creo que escribí una clase personalizada para hacerlo.

myArray("foo1Name") = "foo1"

Luego, puede almacenar una lista de sus nombres de variable, o puede envolverla en la misma clase.

if( myArray(variableName(x)) == whatImLookingFor ) print variableName(x) & "is it"
Respondida el 09/12/2008 a las 16:45
fuente por usuario

votos
0

Para encontrar el nombre de la variable, consulte: Encontrar el nombre de la variable pasado a una función

Esto se aplicaría a VB.Net también.

Respondida el 09/12/2008 a las 16:46
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more