ich diesen Code habe:# Ereignis C kann nicht anonyme Methode mit dem richtigen Argumente Wert nennt
for (int i = 0; i < 7; ++i)
Roption.DropDownItems.Add(string.Concat("Item &", i), null, delegate { Reset(i); });
wo Reset()
aufgerufen wird, wenn das Drop-down-Element geklickt wird.
Das Problem ist, dass, egal welcher Auswahlpunkt geklickt wird, das Argument weitergegeben wird Reset
7 (der Wert von i
nachdem die Schleife endet), nicht der Wert, wenn die i
Roption.DropDownItems.Add
Funktion aufgerufen wird. Was verursacht dieses Verhalten und wie kann es behoben werden? (Ich möchte in sieben ansonsten identischen Aussagen nicht wirklich hart 0 bis 6 kodieren).
Erstellen Sie eine Kopie der Variable 'I' wie dieses' i1 = I' und übergeben 'i1' Methode anstelle zurücksetzen ... http://stackoverflow.com/questions/271440/captured-variable -in-a-loop-in-c-shar –
Das funktioniert, danke! – limits