Portée des variables en C#
PCastuces
Messages postés
85
Statut
Membre
-
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.
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
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.
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.
Maintenant, je sais COMMENT CA MARCHE ;)
Merci.