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 sólo admite las instrucciones en una línea.

Las secciones siguientes ofrecen información específica y tratan algunos de los tipos de expresión no compatibles o parcialmente compatibles:

  • Casts

  • Dynamic Objects

  • Function Evaluation

  • Identifiers and Types

  • Import Aliases

  • Object Variables Containing Intrinsic Types

  • Operators

  • PropertyEvaluation

  • Strings

  • TypeOf Operator

  • Unsupported Keywords

  • Variable Declarations

  • 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 de tipo

En el depurador, funcionan las conversiones de tipo sencillas:

A = CStr(B)

Objetos dinámicos

El evaluador de expresiones puede evaluar variables con tipos estáticos como dinámicas.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 del objeto pero no permite la edición de los valores de los miembros.

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

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

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

  • Llamadas al método con más de dos argumentos

  • Captadores de propiedades con más de dos argumentos

  • Establecedores de propiedades con argumentos

  • Asignar a un indizador

  • Los operadores booleanos && y ||

Evaluación de funciones

El depurador admite la evaluación de funciones, incluidas funciones sobrecargadas.Por tanto, se puede escribir cualquiera de las siguientes expresiones 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 esa 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 la 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 depende de cómo se especifica la función.Si se especifica únicamente el nombre de la función, el depurador establecerá un punto de interrupción en cada sobrecarga de ese nombre de función.Si especifica la firma completa, el nombre de función y la lista completa de argumentos, el depurador establecerá un punto de interrupción en la sobrecarga especificada.

Identificadores y tipos

Las expresiones del depurador pueden utilizar cualquier identificador visible en el ámbito actual.Si se detiene el depurador en la función Magh, por ejemplo, puede utilizar la mayoría de los identificadores visibles en Magh, incluidos las constantes, los nombres de variable y los nombres de función.No se admiten las 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 variables de tipo class, el depurador muestra correctamente el valor según el 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 del objeto de tipo Lion.

Alias de importación

No puede 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 parece 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 mostrará 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}.

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: (expr1Andexpr2, expr1Orexpr2, expr1XOrexpr2, expr1AndAlsoexpr2, expr1OrElseexpr2, Notexpr1).

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

Evaluación de propiedades

El depurador puede evaluar propiedades en cualquier ventana de variable.Sin embargo, evaluar una propiedad en el depurador genera efectos secundarios que afectan a los resultados del programa, como cambiar los valores de las variables.Para evitar los efectos secundarios causados por una evaluación accidental, desactive la evaluación de propiedades en el cuadro de diálogo General, Depurar, 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 expresiónIs 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 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 espacio de nombres o de nivel de módulo, como End Sub o Module.

Declaraciones de variables

No puede 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