Compartir a través de


Expresiones en Visual Basic

El evaluador de expresiones administradas acepta la mayoría de las expresiones escritas en Visual Basic. En la ventana Inmediato, el evaluador de expresiones solo admite instrucciones de una sola línea.

En las próximas secciones se ofrece información específica y se tratan algunos de los tipos de expresiones que no se admiten o se admiten parcialmente:

  • Conversiones

  • Objetos dinámicos

  • Evaluación de funciones

  • Identificadores y tipos

  • Alias de importación

  • Variables de objeto que contienen tipos intrínsecos

  • Operadores

  • Evaluación de propiedades

  • Cadenas

  • Operador TypeOf

  • Palabras clave no admitidas

  • Declaraciones de variables

  • WebMethods

Visual Basic no admite reglas de ampliación automática para mostrar el contenido de un tipo de datos de modo coherente. Para obtener más información, vea Mostrar elementos de un tipo de datos personalizado.

Conversiones

En el depurador funcionan las conversiones sencillas:

A = CStr(B)

Objetos dinámicos

El evaluador de expresiones puede evaluar como dinámicas variables con tipos estáticos. También puede evaluar objetos que implementan la interfaz IDynamicObject. Cuando los objetos que implementan la interfaz IDynamicObject se evalúan en la ventana Inspección, se agrega un nodo Vista dinámica. El nodo Vista dinámica muestra los miembros de objetos, pero no permite editar los valores de los miembros.

No se admiten las características siguientes de los objetos dinámicos:

  • Los operadores compuestos +=, -=, %=, /= y *=

  • Muchas conversiones, incluidas las conversiones numéricas y las conversiones de argumentos de tipos

  • Llamadas a métodos con más de dos argumentos

  • Captadores de propiedades con más de dos argumentos

  • Establecedores de propiedades con argumentos

  • Asignación a un indizador

  • Los operadores booleanos && y ||

Evaluación de funciones

El depurador admite la evaluación de funciones, incluidas las funciones sobrecargadas. Por tanto, se puede escribir cualquiera de las expresiones siguientes y el depurador llamará a la versión correcta de la función sobrecargada:

myFunction (param1)

myFunction (param1, param2)

Cuando se evalúa una función en el depurador, se llama y se ejecuta el código de dicha función. Si la función tiene efectos secundarios, como la asignación de memoria o el cambio de valor de una variable global, evaluar la función en una ventana del depurador cambiará el estado del programa, lo que puede producir resultados inesperados.

Cuando se establece un punto de interrupción en una función sobrecargada, la ubicación del punto de interrupción dependerá de cómo se especifique la función. Si se especifica únicamente el nombre de función, el depurador establecerá un punto de interrupción en cada sobrecarga de dicho nombre de función. Si se especifica la firma completa, el nombre de función y la lista de argumentos completa, el depurador establecerá un punto de interrupción en la sobrecarga especificada.

Identificadores y tipos

Las expresiones del depurador pueden utilizar cualquier identificador visible dentro del ámbito actual. Si el depurador se detiene en la función Magh, por ejemplo, puede utilizar la mayoría de los identificadores visibles en Magh, incluidos los nombres de variable y los nombres de función. No se admiten constantes locales. Puede establecer el valor de cualquier variable visible en el ámbito actual.

El depurador puede mostrar correctamente cualquier variable de tipo primitivo o intrínseco. Para las variables de tipo class, el depurador muestra correctamente el valor en función del tipo más derivado. Si se tiene un objeto leo de tipo Lion, derivado del tipo Cat, se puede evaluar leo.Clawlength y obtener el valor correcto de un objeto de tipo Lion.

Alias de importación

No se pueden usar alias de importación en las ventanas del depurador.

Variables de objeto que contienen tipos intrínsecos

Las variables de objeto que contienen tipos de variable intrínsecos, como las variables de tipo entero, se muestran y modifican de una manera que podría parecer poco intuitiva. Por ejemplo, suponga que su código fuente contiene la siguiente variable de objeto:

Dim obj As Object = 5

La ventana Inspección muestra el valor de la variable obj como:

5 {Integer}

Para cambiar el valor de esta variable a 6, tendría que escribir:

6

No escribiría:

6 {Integer}

Después de modificar el valor, observará que el depurador agrega {Integer} por usted.

Operadores

El depurador evalúa correctamente la mayoría de los operadores, incluidos:

  • Operadores aritméticos: (expr1+ expr2, expr1- expr2, expr1* expr2, expr1/ expr2, expr1\expr2, expr1^expr2, expr1Modexpr2).

  • Operadores de asignación: (var1= expr2, var1^= expr2, var1*= expr2, var1/= expr2, var1\= expr2, var1+= expr2, var1-= expr2, var1&= expr2).

  • Operadores de comparación: (expr2< expr2, expr2<= expr2, expr1> expr2, expr1>= expr2, expr1= expr2, expr1<> expr2).

  • Operadores de concatenación: (expr1& expr2, expr1+ expr2).

  • Operadores lógicos: (expr1And expr2, expr1Or expr2, expr1XOr expr2, expr1AndAlso expr2, expr1OrElse expr2, Notexpr1).

  • Operadores unarios: (- expr1, Not expr1, GetType (type)).

Evaluación de propiedades

El depurador puede evaluar propiedades en cualquier ventana de variables. Sin embargo, evaluar una propiedad en el depurador puede tener efectos secundarios, por ejemplo cambiar los valores de las variables, que afecten a los resultados del programa. Para evitar los efectos secundarios causados por una evaluación accidental, desactive la evaluación de propiedades en el cuadro de diálogo General, Depuración, Opciones.

Cadenas

En Visual Basic, se puede utilizar el operador Length en una cadena:

mystring.Length

O bien

"hello world".Length

Operador TypeOf

En Visual Basic, puede utilizar el operador TypeOf en las ventanas del depurador:

TypeOf expression Is type

Por ejemplo,

TypeOf Me Is Integer

muestra el valor false.

Si utiliza TypeOf, debe formar parte de una expresión que utilice Is. Si utiliza TypeOf sin Is, se mostrará el siguiente mensaje de error:

Is required

Palabras clave no admitidas

Las siguientes palabras clave de Visual Basic no se admiten en las expresiones de las ventanas del depurador:

  • AddressOf

  • End

  • Error

  • Exit

  • Goto

  • On Error

  • Return

  • Resume

  • Select/Case

  • Stop

  • SyncLock

  • Throw

  • Try/Catch/Finally

  • With

Además, no se admiten palabras clave de nivel de espacio de nombres o de módulo, como End Sub o Module.

Declaraciones de variables

No se pueden declarar nuevas variables explícitas en las ventanas del depurador.

Sin embargo, puede asignar a una variable implícita en la ventana Inmediato. Estas variables implícitas se encuentran en el ámbito del depurador y no son accesibles fuera de él. Por ejemplo, la instrucción o = 5 creará implícitamente una nueva variable o y le asignará el valor 5. Estas variables implícitas son de tipo Object, a menos que el depurador pueda deducir el tipo.

WebMethods

No se puede llamar a WebMethods desde las ventanas del depurador.

Vea también

Otros recursos

Expresiones en el depurador

Referencia del lenguaje Visual Basic