У меня есть переменная-член, которая является списком ссылочных типов. В методе, который я создаю, и элемент, добавьте его в список. Затем элемент обновляется, указывая на другой экземпляр, но экземпляр в списке не обновляется (его в одном модульном тестовом коде). Пример выглядит так:Изменение элемента после добавления в список не обновляется Список
Item localItem = new Item(arg1, arg2);
this.itemList.Add(localItem);
// Do some testing and assertions
localItem = new Item(arg3, arg4); // This does not update the instance of
// localItem in this.ItemList
// Do some more testing and assertions
Я могу обновить свои тесты, чтобы исправить это, но это все еще застало меня врасплох. Я полагаю, что List хочет сохранить исходный экземпляр, прошедший через метод Add
, и не заботится об этом, если локальная переменная, которая была использована для его передачи, теперь указывает на что-то еще. Может кто-нибудь может подтвердить это понимание или объяснить это более четко?
Вы устанавливаете переменную 'localItem', и тем самым теряя старую ссылку на оригинальный' localItem'. Это никоим образом не влияет на 'this.itemList'. – TheZ