|
Site |
Cours VB.net |
|
|
|
Message d'erreur. |
|
|
Quand il y a une erreur de syntaxe, VB souligne l'erreur. Mettre le curseur sur l'erreur, un message d'erreur apparaît:
![]()
Pour corriger l faut écrire' Text' et non 'Texte'.
En VB 2005 un panneau d'exclamation permet d'ouvrir une fenêtre proposant le moyen de corriger l'erreur:
Ici on met dans la propriété text d'un label un Integer (ligne jaune), alors qu'il faut mettre une String (Option Strict est probablement égal à On); Vb montre la correction : CStr(i) converti i en String.
Certains messages d'erreur, pour les débutants, sont parfois totalement incompréhensible!!
Voyons quelques messages très fréquents:
Instance d'objet
"La référence d'objet n'est pas définie à une instance d'un objet".
La plupart du temps
cela veut dire qu'on utilise un membre d'un Objet alors qu'on n'a pas instancié
cet objet.
Il y a bien une Classe, mais pas d'objet instancié à partir de cette Classe, on
veut utiliser une membre sur la Classe alors qu'on ne peut utiliser un membre que
sur une instance.
Exemple:
Dim
bt As Buttonbt.BringToFront()
Il n'existe pas réellement d'objet Button : la référence d'objet (bt) n'est donc pas une instance.
Il aurait fallu écrire:
Dim
bt As New Buttonbt.BringToFront()
Membre absent
"Texte n'est pas un membre de System.Windows.Forms.TextBox"
Parfois on fait une bête faute de frappe:
![]()
Il faut tapez : text!!
D'autres fois, on se trompe sur la classe et instance.
TextBox1.IsNullOrEmpty donne le message:
"IsNullOrEmpty n'est pas un membre de System.Windows.Forms.TextBox"
On se trompe: on pense que IsNullOrEmpty est un membre de l'instance TextBox1, en fait c'est un membre de la classe String; il faut écrire:
If String.IsNullOrEmpty(TextBox1.Text) Then
Type Attendu.
"Type attendu"
Exemple 1:
Private MyVariable As New ObladiobladaAprès As New VB attend un type (Integer , Short, String) ou un nom de classe (Form1..). Obladioblada n'est pas une classe (un type!!)
Exemple 2:
' Déclaration Objet DataSet
Private ObjetDataSet As New datasetdataset est souligné comme une erreur "type attendu"!!: Après New Vb attend un type d'objet, une classe. Dataset n'est donc pas considéré comme une classe, pourtant c'est une Classe mais elle n'est pas reconnue:
Explication: l'espace de nom contenant la Classe correspondante n'a pas été importé.
En fait dataset ne peut être utilisé que si Imports System.Data a été ajouté en début de module, dans ce cas Vb sait que c'est un type .
Identificateur Attendu.
Dim 2a As Integer => 2 est surligné, si on met la souris sur le "2", le message 'Identificateur attendu' apparaît.
Erreur: un nom de variable ne doit pas commencer par un chiffre, Vb considère donc que '2a' n'est pas un identificateur (un nom de variable' valide).
|
|
|
|
|