W przypadku pętli for można zadeklarować indeks poza instrukcją for. Na przykład, zamiastzadeklaruj zmienną poza pętlą foreach
for (int i = 0; i < 8; i++) { }
mogę zrobić:
int i;
for (i = 0; i < 8; i++) { }
Teraz w porównaniu do foreach pętli, muszę zadeklarować zmienną wewnątrz pętli:
foreach (string name in names) { }
i nie mogę zrób coś takiego:
string name;
foreach (name in names) { }
Powodem, dla którego to mnie martwi, jest to, że po pętli chcę ponownie użyć zmiennej "name". W przypadku pętli foreach nie można użyć zmiennej "name", ponieważ jest ona poza zakresem foreach i nie mogę zadeklarować innej zmiennej o tej samej nazwie, ponieważ zadeklarowała ona wcześniej w tym samym zakresie.
Każdy pomysł?
Używałbyś nazwy do iteracji na liście, dlaczego powinieneś odwołać się do niej później w swoim kodzie. Myślę, że możesz kodować, aby uniknąć potrzeby takiego użycia. –
@Shamim Hafiz: Mam przypadek, w którym wolę zmienną o tej samej nazwie, co w pętli foreach. – Naor
Miałem ten sam problem. Używam pętli foreach wewnątrz try-catch i piszę do logu wewnątrz bloku try i catch. Używam zmiennej item w pętli foreach wewnątrz obu dzienników. Skończyło się na tym, że użyłem jednej z dwóch pierwszych metod Jona Skeeta. – seebiscuit