![]() |
Перекрытие области видимости в цикле foreach
Имеем такой кусочек кода:
Код:
XmlDocument doc = new XmlDocument(); Цикл Код:
XmlNode node in doc.SelectNodes("//Computer") Но на самом деле, если использовать приведенный выше код, то увидим, что во втором цикле foreach переменная node уже имеет значения из первого цикла (значение Computer вместо UserName. Заменим название переменной во втором коде на node2 все работает без проблем. И, собственно, вопрос - в цикле foreach по другому считается область видимости переменных или это какой то баг? |
С областью видимости всё в силе: вне foreach переменная не видима. Предположение: другое дело что компилятор"увидев" знакомую "картину" решает не списывать переменную. Возможно с помощью Garbage Collector данную ситуацию можно отрегулировать.
Более простой пример Код:
using System; Если с XML вариантом так не происходит, и значения из предыдущего цикла добавляются в TreeView, то можно посчитать что это баги при использовании с XML. |
Цитата:
|
Время: 21:34. |
Время: 21:34.
© OSzone.net 2001-