Portée des variables en C#

Fermé
PCastuces Messages postés 71 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 12 mai 2012 - 10 mai 2012 à 21:18
PCastuces Messages postés 71 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 12 mai 2012 - 12 mai 2012 à 13:52
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

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 71 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 12 mai 2012 4
12 mai 2012 à 13:52
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