Portée des variables en C#

PCastuces Messages postés 85 Statut Membre -  
PCastuces Messages postés 85 Statut Membre -
Bonjour,

s'il vous plait quelqu'un pourrait il m'eclaircir à propos de la cause de cette erreur "CS0165: Use of unassigned local variable" pourtant j'ai bien déclarer mes variables bien avant toutes les boucles, voici le bloc de mon programme C# où ça bloque:


int cl1, cl2;
string villeDept, villeArrivee;

for ( int j = 0; j < NbreClient; j++ )
{
for (int i = j+1; i < NbreClient; i++ )
{
Label1.Text += String.Format(" Le premier Ecart est : {0} <br/>", tab[j].NomClient + tab[i].NomClient);

var dis1 = Trans.Clients.Where(o => o.IdClient == tab[j].NomClient );
foreach (Client client1 in dis1)
{
cl1 = client1.Distance;
villeDept = client1.Ville;

}

var dis2 = Trans.Clients.Where(o => o.IdClient == tab[i].NomClient);
foreach (Client client2 in dis2)
{
cl2 = client2.Distance;
villeArrivee = client2.Ville;
}
}
// c'est à ce stade où l'erreur est signalée;
Label3.Text += string.Format("{0},{1},{2},{3} </br>", cl1, cl2, villeDept, villeArrivee);
}

Je vous remercie d'avance.


1 réponse

le père
 
Bonjour

erreur "CS0165: Use of unassigned local variable" pourtant j'ai bien déclarer mes variables
"unassigned" n'est pas la même chose que "undeclared".
Ce message ne signifie pas que tes variables ne sont pas déclarées.
Elle veut dire que tu utilises dans une expression une variable qui n'a jamais reçu de valeur. Donc sa valeur est indéterminée, donc l'expression ne peut pas être calculée.
Par exemple, si l'erreur est sur for ( int j = 0; j < NbreClient; j++ ) (tu ne dis pas sur quelle ligne est l'erreur), vérifie qu'il y a bien eu plus tôt, quelque part dans ton programme, NbreClient=qqchose.
Tu comprends bien que si on ne connaît pas la valeur de NbreClient, on ne peut pas vérifier la condition de la boucle.
1
PCastuces Messages postés 85 Statut Membre 4
 
Je vous remercie tout d'abord d'avoir donné suite à ma question, et bah M. le père, j'ai octroyé une valeur à ma variable NbreClient, et j'ai bien signalé en commentaire la ligne du code ^^, mais l'erreur est causée par le fait que je n'ai pas initialisé mes variables, c'est vrai que par la suite j'ai affecté des valeurs à ces variables mais en ASP/C# ça ne marche pas comme ça, il faut absolument initialiser les variables que l'en déclare.

Maintenant, je sais COMMENT CA MARCHE ;)

Merci.
0