Je veux créer 32 étiquettes de mon formulaire, donc j'ai utilisé le code comme celui-ci: mais je reçois une erreur p> CS1656: Impossible d'assigner LB car il s'agit d'une variable d'itération de foresach. P>
blockQuote> une solution? p> p>
4 Réponses :
Vous ne pouvez pas attribuer à la variable Cette erreur se produit lorsqu'une attribution à la variable se produit dans un contexte en lecture seule. Les contextes en lecture seule incluent des variables d'itération, l'utilisation de variables et des variables fixes. Pour résoudre cette erreur, évitez les affectations à une variable d'instruction dans Essayez un lb code>, car il s'agit d'une variable d'itération code> de code>, il est donc dans un contexte en lecture seule. C'est pourquoi vous obtenez Erreur du compilateur CS1656 < / a>:
à l'aide des blocs CODE> Blocks,
TRANCHACH STATEMENTS ET
FIXE CODE> Déclarations. P>
blockQuote>
pour code> -Loop: p>
Vous devez utiliser A pour la boucle, pas pour acheter
Vous pouvez utiliser une boucle pour la boucle comme décrit par les @Phils et @rickvdbosch, mais vous pouvez vous empêcher de boucles en utilisant énumérable.Sélectionnez code>:
//using System.Windows.Forms;
Label[] Lb_clubs;
Lb_clubs = new Label[32].Select(lbl => new Label()).ToArray();
foreach (Label lb in Lb_clubs)
{
lb.Text = "somename";
//and other codes
}
Vous ne pouvez pas affecter une valeur dans un ne peut pas attribuer à 'lb' car il s'agit d'une «variable d'itération» p>
blockQuote> qui génère un Erreur de compilateur CS1656 . P> Vous pouvez le faire (en plus de ce que d'autres ont déjà suggéré) en une ligne, en utilisant Enumérable.Range : P> foreach code> boucle: Vous devez également voir le
lb = nouvelle étiquette (); code> marqué dans l'éditeur, qui devrait vous dire que c'est
var Lb_clubs = Enumerable.Range(0, 32).Select(idx => new Label() {
Text = "SomeText" + idx.ToString(),
Name = "SomeName" + idx.ToString() }).ToArray();