Condividi tramite


Espressioni in linguaggio Visual Basic

Aggiornamento: novembre 2007

Le informazioni contenute in questo argomento sono valide per:

Edition

Visual Basic

C#

C++

Web Developer

Express

Argomento applicabile Argomento non applicabile Argomento non applicabile Argomento applicabile

Standard

Argomento applicabile Argomento non applicabile Argomento non applicabile Argomento applicabile

Pro e Team

Argomento applicabile Argomento non applicabile Argomento non applicabile Argomento applicabile

Legenda tabella:

Argomento applicabile

Applicabile

Argomento non applicabile

Non applicabile

Argomento valido ma comando nascosto per impostazione predefinita

Comando o comandi nascosti per impostazione predefinita.

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:

  • Identificatori e tipi

  • Valutazione delle funzioni

  • Operatori

  • Parole chiave non supportate

  • Stringhe

  • Cast

  • Operatore TypeOf

  • Variabili oggetto contenenti tipi intrinseci

  • Valutazione delle proprietà

  • WebMethod

  • Dichiarazione di variabili

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)

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: (expr1 And expr2, expr1 Or expr2, expr1 XOr expr2, expr1 AndAlso expr2, expr1 OrElse expr2, 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

-oppure-

"hello world".Length

Operatore TypeOf

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

TypeOf expression Is type

Ad 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 di Visual Basic