Condividi tramite


Espressioni in linguaggio Visual Basic

L'analizzatore di espressioni gestite accetta la maggior parte delle espressioni scritte in Visual Basic.Nella finestra di controllo immediato l'analizzatore di espressioni supporta esclusivamente istruzioni a riga singola.

Nelle sezioni riportate di seguito vengono fornite informazioni specifiche e vengono illustrati alcuni tipi di espressioni non supportati o parzialmente supportati:

  • 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

In Visual Basic non sono supportate le regole di espansione automatica per la visualizzazione del contenuto di un tipo di dati in formato significativo.Per ulteriori informazioni, vedere Visualizzazione degli elementi di un tipo di dati personalizzato.

Cast

Nel debugger possono essere utilizzati cast semplici:

A = CStr(B)

Oggetti dinamici

L'analizzatore di espressioni può valutare variabili che sono digitate staticamente come dinamiche.Può valutare anche oggetti che implementano l'interfaccia IDynamicObject.Quando gli oggetti che implementano l'interfaccia IDynamicObject vengono valutati nella finestra Espressioni di controllo, viene aggiunto un nodo Visualizzazione dinamica.Il nodo di visualizzazione dinamica mostra i membri dell'oggetto ma non consente la modifica dei valori dei membri.

Le seguenti funzionalità di oggetti dinamici non sono supportate:

  • Gli operatori composti +=, -=, %=, /= e *=

  • Molti cast, inclusi cast numerici e cast dell'argomento di tipo

  • Chiamate al metodo con più di due argomenti

  • I metodi per il richiamo delle proprietà con più di due argomenti

  • I metodi per il richiamo delle proprietà con gli argomenti

  • Assegnazione a un indicizzatore

  • Gli operatori booleani && e ||

Valutazione delle funzioni

Il debugger supporta la valutazione delle funzioni, tra cui quelle in overload.Di conseguenza, quando si immette una delle espressioni seguenti, il debugger chiama la versione corretta della funzione in overload:

myFunction (param1)

myFunction (param1, param2)

La valutazione di una funzione nel debugger comporta la chiamata e l'esecuzione del codice relativo a tale funzione.Se la funzione genera effetti collaterali, quali l'allocazione di memoria o la modifica del valore di una variabile globale, la valutazione della funzione in una finestra del debugger comporterà la modifica dello stato del programma e questa operazione può produrre risultati imprevisti.

Quando si imposta un punto di interruzione su una funzione in overload, la posizione del punto di interruzione dipende dal modo in cui si specifica la funzione.Se si specifica solo il nome della funzione, verrà impostato un punto di interruzione su ogni overload del nome della funzione.Se si specifica la firma completa, ossia il nome della funzione e l'elenco completo degli argomenti, verrà impostato un punto di interruzione sull'overload specificato.

Identificatori e tipi

Nelle espressioni del debugger è possibile utilizzare qualsiasi identificatore visibile nell'ambito corrente.Se, ad esempio, il debugger viene interrotto nella funzione Magh, è possibile utilizzare la maggior parte degli identificatori visibili all'interno di Magh, tra cui nomi di variabili e nomi di funzioni.Le costanti locali non sono supportate.È possibile impostare il valore di qualsiasi variabile visibile nell'ambito corrente.

Nel debugger è possibile visualizzare correttamente qualsiasi variabile di tipo primitivo o intrinseco.Nel caso di variabili di tipo classe, il valore viene visualizzato correttamente in base al tipo derivato di livello più basso.Se si dispone di un oggetto leo di tipo Lion derivato dal tipo Cat, è possibile valutare leo.Clawlength e ottenere il valore corretto per un oggetto di tipo Lion.

Alias di importazione

Nelle finestre del debugger non è possibile utilizzare gli alias di importazione.

Variabili oggetto contenenti tipi intrinseci

Le variabili oggetto che contengono tipi intrinseci di variabili, ad esempio integer, vengono visualizzate e modificate in un modo che potrebbe sembrare poco intuitivo.Si supponga, ad esempio, che il codice sorgente contenga una variabile oggetto simile a quella riportata di seguito:

Dim obj As Object = 5

Nella finestra Espressioni di controllo il valore della variabile obj verrà visualizzato come segue:

5 {Integer}

Per modificare il valore della variabile a 6, è necessario immettere:

6

Non è invece corretto immettere:

6 {Integer}

Dopo la modifica del valore, si noterà che nel debugger viene aggiunto automaticamente {Integer}.

Operatori

Nel debugger viene eseguita correttamente la valutazione della maggior parte degli operatori, tra cui:

  • Operatori aritmetici: ( expr1+expr2, expr1-expr2, expr1*expr2, expr1/expr2, expr1\expr2, expr1^expr2 , expr1Modexpr2 ).

  • Operatori si assegnazione: (var1= expr2, var1^= expr2, var1*= expr2, var1/= expr2, var1\= expr2, var1+= expr2, var1-= expr2, var1&= expr2).

  • Operatori di confronto: (expr2< expr2, expr2<= expr2, expr1> expr2, expr1>= expr2, expr1= expr2, expr1<> expr2).

  • Operatori di concatenazione: (expr1&expr2, expr1+expr2).

  • Operatori logici: (expr1Andexpr2, expr1Orexpr2, expr1XOrexpr2, expr1AndAlsoexpr2, expr1OrElseexpr2, Notexpr1).

  • Operatori unari: (- expr1, Not expr1, GetType (type)).

Valutazione delle proprietà

Il debugger è in grado di valutare le proprietà in qualsiasi finestra di variabile.La valutazione di una proprietà nel debugger può tuttavia produrre effetti collaterali, ad esempio la modifica di valori di variabili, che influiscono sui risultati del programma.Per evitare gli effetti collaterali causati da una valutazione accidentale, è possibile disattivare la valutazione delle proprietà nella finestra di dialogo Opzioni facendo clic su Debug e quindi su Generale.

Stringhe

In Visual Basic è possibile utilizzare l'operatore Length su una stringa:

mystring.Length

In alternativa

"hello world".Length

Operatore TypeOf

In Visual Basic è possibile utilizzare l'operatore TypeOf nelle finestre del debugger:

TypeOf espressioneIs type

Di seguito è riportato un esempio:

TypeOf Me Is Integer

visualizza il valore false.

Se si specifica l'operatore TypeOf, è necessario includerlo in un'espressione in cui viene utilizzato Is.Se si utilizza TypeOf senza Is, verrà visualizzato il seguente messaggio di errore:

Is required

Parole chiave non supportate

Nelle espressioni specificate nelle finestre del debugger non sono supportate le seguenti parole chiave di Visual Basic:

  • AddressOf

  • End

  • Error

  • Exit

  • Goto

  • On Error

  • Return

  • Resume

  • Select/Case

  • Stop

  • SyncLock

  • Throw

  • Try/Catch/Finally

  • With

Non sono inoltre supportate parole chiave a livello di spazio dei nomi o di modulo, ad esempio End Sub o Module.

Dichiarazione di variabili

Non è possibile dichiarare nuove variabili esplicite nelle finestre del debugger.

È tuttavia possibile assegnare un valore a una variabile implicita nella finestra di controllo immediato.Queste variabili implicite hanno un ambito limitato al debugger e non sono accessibili all'esterno del debugger.L'istruzione o = 5, ad esempio, crea in modo implicito una nuova variabile o alla quale assegna il valore 5.Le variabili implicite sono di tipo Object, a meno che il tipo non possa essere dedotto dal debugger.

WebMethod

Non è possibile chiamare WebMethod dalle finestre del debugger.

Vedere anche

Altre risorse

Espressioni nel debugger

Riferimenti al linguaggio Visual Basic