Initialiser plusieurs variables sur une seule ligne [Résolu]

Signaler
Messages postés
165
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
16 février 2011
-
Messages postés
165
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
16 février 2011
-
Bonjour

Je cherche a initialiser a 0 plusieurs variables en écrivant une seule ligne de code.

Si j'écris :
ZNom.Text ZPrenom.Text ZTel.Text = ZGsm.Text = Zemail.Text = ZSam.Text = ZServic.Text =

""

Je n'ai ni l'effect désiré et en plus j'ai une erreur
L'exception System.InvalidCastException n'a pas été gérée par le code utilisateur
  Message="La conversion de la chaîne "" en type 'Boolean' n'est pas valide."

Pourtant je n'ai que des variables strings. Je ne comprends pas.

Existe t'il une autre méthode ?

D'avance merci

7 réponses

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
ZNom.Text = ZPrenom.Text = ZTel.Text = ZGsm.Text = Zemail.Text = ZSam.Text = ZServic.Text =""
Cette syntaxe à une signification bien precise en VB, ex :
ZSam.Text ZServic.Text"" est l'équivalent de ZSam.Text = (ZServic.Text ="")  ou (ZServic.Text ="") est un test pour savoir si ZServic est égal à "".
(ZServic.Text ="") renvoie True ou False suivant le résultat du test, et ne peut donc pas etre affecter à une variable de type texte. D'ou ton message d'erreur.

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #   
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
42
cette syntaxe est (je crois) acceptée en C#, mais pas en VB.NET

tu vas devoir attribuer chaque chaque zone, éventuellement en séparant par des ":" pour être sur la même ligne

çà donne



ZNom.Text string.empty : ZPrenom.Text string.empty :
ZTel.Text = string.empty :
ZGsm.Text = string.empty :
Zemail.Text = string.empty :
ZSam.Text = string.empty :
ZServic.Text = string.empty







++


Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
351
Date d'inscription
mercredi 21 juillet 2004
Statut
Membre
Dernière intervention
12 août 2009

bonjour
Une autre solution serait de mettre les controles dans un tableau de type objet puis d'utiliser une boucle..
dim i as integer
dim MonTableau(6) as object
MonTableau(0)=ZNom
..

sub ViderMesTB()
for i=0 to 6 step 1
MonTableau(i).text=String.empty
next
End Sub
(ou quelque comme ça)

thierry la fronde
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
Ah, j'oubliais

Par défaut, toute varaiable, avant une affectation est automatiquement initialisée à 0 pour un numérique, String.Empty pour une chaine de caractère, Nothing pour un objet, .....

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #   
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
" ....toute variable, avant une PREMIERE affectation est ..."

Décidement c'est pas ma journée aujourd'hui

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #   
Messages postés
372
Date d'inscription
vendredi 27 juillet 2007
Statut
Membre
Dernière intervention
22 juillet 2013
1
Bonjour ,

ZNom.Text ZPrenom.Text ZTel.Text = ZGsm.Text = Zemail.Text = ZSam.Text = ZServic.Text =
Si c'était aussi simple , ça se saurait !

A+
Messages postés
165
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
16 février 2011

Merci a tous. C'est vrai qu'en C c'est aussi simple que cela.