Compartilhar via


Expressões no Visual Basic

This topic applies to:

Edition

Visual Basic

C#

F#

C++

Web Developer

Express

O tópico é aplicável O tópico não é aplicável O tópico não é aplicável O tópico não é aplicável O tópico é aplicável

Pro, Premium e Ultimate

O tópico é aplicável O tópico não é aplicável O tópico não é aplicável O tópico não é aplicável O tópico é aplicável

O avaliador da expressão gerenciado aceita a maioria das expressões escritas Visual Basic. In the Immediate window, the expression evaluator only supports single-line statements.

As seções a seguir oferecem informações específicas e discutem alguns dos tipos de expressão que não são suportados ou suporte parcial:

  • 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 Basicnão oferece suporte a regras autoexpand para exibir o conteúdo de um tipo de dados no formulário significativo. For more information, see Displaying Elements of a Custom Data Type.

Casts

Simple casts work in the debugger:

A = CStr(B)

Objetos dinâmicos

O avaliador da expressão pode avaliar as variáveis são tipificadas estaticamente como dinâmicos. Ele também pode avaliar os objetos que implementam a interface IDynamicObject. Quando os objetos que que implemente a interface de IDynamicObject são avaliados na Watch janela, um modo de exibição dinâmica nó é adicionado. O nó de exibição dinâmica mostra os membros do objeto, mas não permite editar os valores dos membros.

Não há suporte para os seguintes recursos de objetos dinâmicos:

  • O + = de compostos de operadores, o-=, % = / =, e * =

  • Muitas conversões, incluindo conversões numéricos e projeções de argumento de tipo

  • Chamadas de método com mais de dois argumentos

  • Getters de propriedade com mais de dois argumentos

  • Setters de propriedade com argumentos

  • A atribuição de um indexador

  • Os operadores booleanos & & e | |

Function Evaluation

The debugger supports the evaluation of functions, including overloaded functions. Therefore, you can enter either of the following expressions, and the debugger will call the correct version of the overloaded function:

myFunction (param1)

myFunction (param1, param2)

Evaluating a function in the debugger calls and executes the code for that function. If the function has side effects, such as allocating memory or changing the value of a global variable, evaluating the function in a debugger window will change the state of your program, which can produce unexpected results.

When you set a breakpoint on an overloaded function, the location of the breakpoint depends on how you specify the function. If you specify only the function name, the debugger will set one breakpoint on each overload of that function name. Se você especificar a assinatura concluída, o nome da função e a lista de argumentos completa, o depurador define um ponto de interrupção na sobrecarga especificada.

Identifiers and Types

Debugger expressions can use any identifier visible within the current scope. Se o depurador é interrompido na função Magh, por exemplo, você pode usar a maioria dos identificadores visíveis na Magh, incluindo nomes de variáveis e funcionar nomes. Local constants are not supported. You can set the value of any variable visible within the current scope.

The debugger can correctly display any variable of a primitive or intrinsic type. For variables of class type, the debugger correctly displays the value based on the derived-most type. Se você tiver um objeto leo do tipo Lion, derivado do tipo Cat, você pode avaliar leo.Clawlength e obter o valor correto para um objeto do tipo Lion.

Import Aliases

You cannot use import aliases in the debugger windows.

Object Variables Containing Intrinsic Types

Object variables that contain intrinsic variable types, such as integer, are displayed and edited in a manner that may appear counterintuitive. For example, suppose your source code contains object variable like this:

Dim obj As Object = 5

O Watch janela mostra o valor da variável obj como:

5 {Integer}

To change the value of this variable to 6, you would enter:

6

You would not enter:

6 {Integer}

Depois de editar o valor, você irá notar que o depurador adiciona o {Integer} para você.

Operators

The debugger correctly evaluates most operators, including:

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

  • Operadores de atribuição: ( var1 = expr2, var1 ^= expr2, var1 *= expr2, var1 /= expr2, var1 \= expr2, var1 += expr2, var1 -= expr2, var1 &= expr2).

  • Operadores de comparação: (expr2 < expr2, expr2 <= expr2, expr1 > expr2, expr1 >= expr2, expr1 = expr2, expr1 <> expr2).

  • Operadores de concatenação: (expr1 & expr2, expr1 + expr2).

  • Operadores lógicos: (expr1 And expr2, expr1 Or expr2, expr1 XOr expr2, expr1 AndAlso expr2, expr1 OrElse expr2, Not expr1).

  • Operadores unários: ( - expr1, Not expr1, GetType (type) ).

Property Evaluation

The debugger can evaluate properties in any variable window. However, evaluating a property in the debugger can have side effects, such as changing variable values, that affect program results. To protect against side effects caused by accidental evaluation, you can turn property evaluation off in the General, Debugging, Options dialog box.

Strings

Em Visual Basic, você pode usar o Length o operador em uma seqüência de caracteres:

mystring.Length

- ou -

"hello world".Length

TypeOf Operator

Em Visual Basic, você pode usar o TypeOf operador nas janelas do depurador:

TypeOf expressão Is tipo

For example,

TypeOf Me Is Integer

Exibe o valor false.

Se você usar TypeOf, ele deve ser parte de uma expressão que utiliza Is. Se você usar TypeOf sem Is, você receberá a seguinte mensagem de erro:

Is required

Unsupported Keywords

O seguinte Visual Basic não há suporte para palavras-chave em expressões de janela do depurador:

  • AddressOf

  • End

  • Error

  • Exit

  • Goto

  • On Error

  • Return

  • Resume

  • Select/Case

  • Stop

  • SyncLock

  • Throw

  • Try/Catch/Finally

  • With

Além disso, nenhum namespace ou o módulo nível palavras-chave, como End Sub ou Module, são suportadas.

Variable Declarations

You cannot declare explicit new variables in debugger windows.

However, you can assign to an implicit variable in the Immediate window. These implicit variables are scoped to the debugger and not accessible outside the debugger. Por exemplo, a instrução o = 5 implicitamente criará uma nova variável de o e atribua o valor 5 para o proprietário. Essas variáveis implícitas são do tipo Object , a menos que o tipo pode ser inferido pelo depurador.

WebMethods

You cannot call WebMethods from debugger windows.

Consulte também

Outros recursos

Expressões no depurador

Referência de linguagem do Visual Basic