Compartilhar via


Expressões em Visual Basic

O avaliador da expressão gerenciado aceita a maioria das expressões escritas em Visual Basic.No imediata janela, o avaliador da expressão suporta apenas instruções de linha única.

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.Para obter mais informações, consulte Exibindo elementos de um tipo de dados personalizados.

Projeções

Conversões simples funcionam no depurador:

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 implementam a interface IDynamicObject são avaliados no Watch janela, um nó é adicionado no modo dinâmico.O nó de exibição dinâmica mostra membros de objeto, mas não permite editar os valores dos membros.

Os seguintes recursos de objetos dinâmicos não são suportados:

  • O + = operadores compostos,-=, % = / =, 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

  • Atribuindo a um indexador

  • Os operadores booleanos & & e | |

Avaliação da função

O depurador oferece suporte a avaliação de funções, incluindo funções sobrecarregadas.Portanto, você pode inserir qualquer uma das expressões a seguir e o depurador chamará a versão correta da função sobrecarregada:

myFunction (param1)

myFunction (param1, param2)

Avaliar uma função no depurador chama e executa o código para essa função.Se a função possui efeitos colaterais, como alocar memória ou alterando o valor de uma variável global, avaliar a função em uma janela de depurador alterará o estado de seu programa, que pode produzir resultados inesperados.

Quando você definir um ponto de interrupção em uma função sobrecarregada, o local do ponto de interrupção depende como especificar a função.Se você especificar somente o nome da função, o depurador definirá um ponto de interrupção em cada sobrecarga com esse nome de função.Se você especificar a assinatura completa, o nome da função e a lista de argumentos completa, o depurador define um ponto de interrupção na sobrecarga especificada.

Identificadores e tipos

Expressões de depurador podem usar qualquer identificador visível dentro do escopo atual.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 nomes de função.Não há suporte para constantes locais.Você pode definir o valor de qualquer variável visível dentro do escopo atual.

O depurador corretamente pode exibir qualquer variável de um tipo primitivo ou intrínseco.Para variáveis do tipo de classe, o depurador corretamente exibe o valor com base no tipo mais derivado.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.

Aliases de importação

Você não pode usar aliases de importação nas janelas do depurador.

Variáveis objeto contendo tipos intrínsecos

Variáveis objeto contendo tipos intrínsecos variáveis, como inteiro, são exibidas e editadas de uma maneira que pode parecer pouco intuitivo.Por exemplo, suponha que seu código-fonte contém variável de objeto como esta:

Dim obj As Object = 5

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

5 {Integer}

Para alterar o valor dessa variável para 6, digite:

6

Você não deve inserir:

6 {Integer}

Após editar o valor, você observará que o depurador adiciona o {Integer} para você.

Operadores

O depurador corretamente avalia a maioria dos operadores, incluindo:

  • Arithmetical operators: ( expr1+ expr2, expr1- expr2, expr1* expr2, expr1/ expr2, expr1\expr2, expr1^expr2 , expr1Modexpr2 ).

  • Assignment operators: ( var1= expr2, var1^= expr2, var1*= expr2, var1/= expr2, var1\= expr2, var1+= expr2, var1-= expr2, var1&= expr2).

  • Comparison operators: (expr2< expr2, expr2<= expr2, expr1> expr2, expr1>= expr2, expr1= expr2, expr1<> expr2).

  • Concatenation operators: (expr1& expr2, expr1+ expr2).

  • Logical operators: (expr1And expr2, expr1Or expr2, expr1XOr expr2, expr1AndAlso expr2, expr1OrElse expr2, Notexpr1).

  • Unary operators: ( - expr1, Not expr1, GetType (type) ).

Avaliação de propriedade

O depurador pode avaliar as propriedades em qualquer janela variável.No entanto, avaliar uma propriedade no depurador pode ter efeitos colaterais, como alterar valores de variáveis, que afetam os resultados do programa.Para proteger contra efeitos colaterais causados por avaliações acidentais, você pode desativar propriedade avaliação na General, Debugging, opções de caixa de diálogo.

Cadeias de caracteres

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

mystring.Length

-  ou  -

"hello world".Length

Operador TypeOf

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

TypeOf expressionIs tipo

Por exemplo,

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

Palavras-chave sem suporte

O seguinte Visual Basic palavras-chave não são suportadas 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 módulo nível palavras-chave, como End Sub ou Module, são suportadas.

Declarações de variável

Você não pode declarar novas variáveis explicitamente no depurador windows.

No entanto, você pode atribuir a uma variável implícita na imediata janela.Essas variáveis implícitas são escopo para o depurador e não acessível fora do depurador.Por exemplo, a instrução o = 5 implicitamente irá criar uma nova variável de o e atribuir o valor de 5 a ele.Essas variáveis implícitas são do tipo Object , a menos que o tipo pode ser inferido pelo depurador.

WebMethods

Você não é possível chamar WebMethods do depurador windows.

Consulte também

Outros recursos

Expressões no depurador

Referência de linguagem Visual Basic