Jeśli mam pętlę takie jak poniżej:C# pętle: iteracja tablicy
foreach (string pass in new string[] { "pass1", "pass2", "pass3" })
{
x = pass; //etc
}
sposób anonimowy array ciąg dostać utworzone, gdy początkowo lub odtworzone raz na każdym przejściu?
Wierzę, że ci pierwsi, ale koledzy są przekonani, że to błąd, który czeka, aby się wydarzyć, ponieważ mówią, że każda iteracja pętli foreach powoduje utworzenie nowej tablicy napisów.
Kod demontażu VS sugeruje, że mam rację, ale chcę mieć pewność.
Powodem, dla którego na to patrzymy jest próba zrozumienia tajemniczego błędu, który informuje, że kolekcja została zmieniona podczas iteracji.
Możesz go łatwo przetestować, wstaw wartość 'DateTime' zamiast ciągów i sprawdź elementy w każdej iteracji. –
Innym sposobem pokazania im, że jest oceniany tylko raz, jest przejście przez kod w trybie debugowania. Kod, który tworzy tablicę znaków, zostanie podświetlony tylko raz. –
lub 'nowy ciąg [] {" pass1 "," pass "+ i ++," pass3 "}' – Nolonar