У меня проблема со следующим кодом:
public static void RestoreToolStripMenuItem(ToolStripMenuItem item, List<string>.Enumerator enumerator )
{
item.Text = enumerator.Current;
enumerator.MoveNext();
if (item.HasDropDownItems)
{
var itemsWithoutSeparators = item.DropDownItems.OfType<ToolStripMenuItem>();
foreach (var child in itemsWithoutSeparators)
{
RestoreToolStripMenuItem(child, enumerator);
}
}
}
После рекурсивного вызова RestoreToolStripMenuItem счетчик сбрасывается (текущее свойство указывает на первый элемент коллекции). Это можно получить, передавая перечислитель по реф. Мне интересно, почему это так? Перечислитель - это структура. Чем вызвана эта проблема, изменчивость структуры Enumerator?