Partager via


Expressions dans Visual Basic

Mise à jour : novembre 2007

Cette rubrique s'applique à :

Édition

Visual Basic

C#

C++

Web Developer

Express

La rubrique s'applique La rubrique ne s'applique pas La rubrique ne s'applique pas La rubrique s'applique

Standard

La rubrique s'applique La rubrique ne s'applique pas La rubrique ne s'applique pas La rubrique s'applique

Pro et Team

La rubrique s'applique La rubrique ne s'applique pas La rubrique ne s'applique pas La rubrique s'applique

Légende du tableau :

La rubrique s'applique

Applicable

La rubrique ne s'applique pas

Non applicable

La rubrique s'applique mais la commande est masquée par défaut

Commande ou commandes masquées par défaut.

L'évaluateur d'expression managée accepte la plupart des expressions écrites en Visual Basic. Dans la fenêtre Exécution, l'évaluateur d'expression ne prend en charge que des instructions d'une seule ligne.

Les rubriques suivantes donnent des informations spécifiques et décrivent certains types d'expressions non pris en charge :

  • Identificateurs et types

  • Évaluation de fonction

  • Opérateurs

  • Mots clés non pris en charge

  • Chaînes

  • Casts

  • TypeOf, opérateur

  • Variables objets contenant des types intrinsèques

  • Évaluation de propriété

  • WebMethods

  • Déclarations de variable

Visual Basic ne prend pas en charge les règles de développement automatique pour afficher le contenu d'un type de données sous une forme significative. Pour plus d'informations, consultez Affichage d'éléments d'un type de données personnalisé.

Casts

Les casts simples fonctionnent dans le débogueur :

A = CStr(B)

Évaluation de fonction

Le débogueur prend en charge l'évaluation des fonctions, y compris les fonctions surchargées. Par conséquent, vous pouvez entrer l'une des expressions suivantes et le débogueur appellera la version correcte de la fonction surchargée :

myFunction (param1)

myFunction (param1, param2)

L'évaluation d'une fonction dans le débogueur appelle et exécute le code pour cette fonction. Si la fonction a des effets secondaires, par exemple l'allocation de mémoire ou le changement de la valeur d'une variable globale, l'évaluation de la fonction dans une fenêtre du débogueur change l'état de votre programme, ce qui peut produire des résultats inattendus.

Lorsque vous définissez un point d'arrêt sur une fonction surchargée, l'emplacement du point d'arrêt dépend de la façon dont vous spécifiez la fonction. Si vous spécifiez uniquement le nom de la fonction, le débogueur définit un point d'arrêt sur chaque surcharge du nom de cette fonction. Si vous spécifiez la signature complète (nom de fonction et liste d'arguments complète), le débogueur définit un point d'arrêt sur la surcharge spécifiée.

Identificateurs et types

Les expressions du débogueur peuvent utiliser n'importe quel identificateur visible à l'intérieur de la portée actuelle. Si le débogueur est interrompu dans la fonction Magh, par exemple, vous pouvez utiliser la plupart des identificateurs visibles dans Magh, y compris les noms de variables et les noms de fonctions. Les constantes locales ne sont pas prises en charge. Vous pouvez définir la valeur de n'importe quelle variable visible à l'intérieur de la portée actuelle.

Le débogueur peut correctement afficher n'importe quelle variable de type primitif ou intrinsèque. Pour les variables de type classe, le débogueur affiche correctement la valeur en fonction du type le plus dérivé. Si vous avez un objet leo de type Lion, dérivé du type Cat, vous pouvez évaluer leo.Clawlength et obtenir la valeur correcte pour un objet de type Lion.

Alias d'importation

Vous ne pouvez pas utiliser d'alias d'importation dans les fenêtres du débogueur.

Variables objets contenant des types intrinsèques

Les variables objets qui contiennent des types de variables intrinsèques, par exemple des entiers, sont affichées et modifiées d'une façon qui peut sembler non intuitive. Par exemple, si cotre code source contient une variable objet qui se présente comme ceci :

Dim obj As Object = 5

La fenêtre Espion affiche la valeur de la variable obj sous la forme ci-dessous :

5 {Integer}

Pour remplacer la valeur de cette variable par 6, vous devez entrer :

6

Et non :

6 {Integer}

Après avoir modifié la valeur, vous remarquerez que le débogueur ajoute le {Integer} pour vous.

Opérateurs

Le débogueur évalue correctement la plupart des opérateurs, y compris :

  • Les opérateurs arithmétiques : (expr1 + expr2, expr1 - expr2, expr1 * expr2, expr1 / expr2, expr1\expr2, expr1^expr2 , expr1Modexpr2).

  • Les opérateurs d'assignation : (var1 = expr2, var1 ^= expr2, var1 *= expr2, var1 /= expr2, var1 \= expr2, var1 += expr2, var1 -= expr2, var1 &= expr2).

  • Les opérateurs de comparaison : (expr2 < expr2, expr2 <= expr2, expr1 > expr2, expr1 >= expr2, expr1 = expr2, expr1 <> expr2).

  • Les opérateurs de concaténation : (expr1 & expr2, expr1 + expr2).

  • Les opérateurs logiques : (expr1 And expr2, expr1 Or expr2, expr1 XOr expr2, expr1 AndAlso expr2, expr1 OrElse expr2, Notexpr1).

  • Les opérateurs unaires : (- expr1, Not expr1, GetType (type)).

Évaluation de propriété

Le débogueur peut évaluer les propriétés dans n'importe quelle fenêtre de variable. Cependant, l'évaluation d'une propriété dans le débogueur peut avoir des effets secondaires (tels que la modification des valeurs des variables) qui affectent les résultats du programme. Pour une protection contre les effets secondaires dus à une évaluation accidentelle, vous pouvez désactiver l'évaluation de propriété dans la boîte de dialogue Général, Débogage, Options.

Chaînes

En Visual Basic, vous pouvez utiliser l'opérateur Length dans une chaîne :

mystring.Length

- ou -

"hello world".Length

TypeOf, opérateur

En Visual Basic, vous pouvez utiliser l'opérateur TypeOf dans les fenêtres du débogueur :

TypeOf expression Is type

Par exemple :

TypeOf Me Is Integer

affiche la valeur false.

Si vous utilisez TypeOf, il doit faire partie d'une expression qui utilise Is. Si vous utilisez TypeOf sans Is, vous obtiendrez le message d'erreur suivant :

Is required

Mots clés non pris en charge

Les mots clés Visual Basic suivants ne sont pas pris en charge dans les expressions des fenêtres du débogueur :

  • AddressOf

  • End

  • Error

  • Exit

  • Goto

  • On Error

  • Return

  • Resume

  • Select/Case

  • Stop

  • SyncLock

  • Throw

  • Try/Catch/Finally

  • With

De plus, aucun mot clé de niveau espace de noms ou module, tel que End Sub ou Module, n'est pris en charge.

Déclarations de variable

Vous ne pouvez pas déclarer de nouvelles variables explicites dans les fenêtres du débogueur.

Toutefois, vous pouvez assigner une variable implicite dans la fenêtre Exécution. La portée des variables implicites est celle du débogueur. Elles ne sont pas accessibles à l'extérieur du débogueur. Par exemple, l'instruction o = 5 crée implicitement une nouvelle variable o et lui assigne la valeur 5. De telles variables implicites sont de type Object, sauf si le type peut être déduit par le débogueur.

WebMethods

Vous ne pouvez pas appeler de WebMethods à partir des fenêtres du débogueur.

Voir aussi

Autres ressources

Expressions dans le débogueur

Référence Visual Basic