Может ли кто-нибудь найти время, чтобы объяснить мне языковые основы здесь:
int foo = myObject.SomeList.Count;
for (int i = 0 ; i < foo ; i++)
{
myObject.SomeList.Add(bar);
}
входит в бесконечный цикл, потому что foo
ссылается на значение, которое продолжает увеличиваться. Изменение первой строки:
int foo = (int)myObject.SomeList.Count;
заставляет его исчезнуть, как-то раз и навсегда изменив foo
со ссылки на значение. Вероятно, это учебник, но почему это происходит?
Большое спасибо
РЕДАКТИРОВАТЬ: Хорошо, как упоминает Патрик, бесконечный цикл происходит только тогда, когда нет предварительного хранилища для foo, бросание бессмысленно, что имеет смысл. Это действительно то, что я думал изначально, отлаживая это. Отсюда и мое удивление, когда актеры это исправили. На самом деле Visual Studio ввел меня в заблуждение, заставив думать, что я исправил его, когда возникла проблема синхронизации между отредактированным кодом и исполняемым кодом, что привело к неверным выводам.