Надо сломать HashSet, для чего тредуется добавить в него объект, после этого изменить его (извне коллекции). Есть следующий класс:
public class GhostsTask :
IFactory<Vector>, IMagic
{
public void DoMagic() {}
Vector IFactory<Vector>.Create() {}
}
Как в методе Create
можно сохранить ссылку на последний созданный объект, чтобы изменить его методом DoMagic()
уже после добавления в HashSet
:
TGhostsTask task = new TGhostsTask();
var ghostItem = task.Create();
var set = new HashSet<TItem> { ghostItem };
Assert.IsTrue(set.Contains(task.Create()));
task.DoMagic();
Assert.AreEqual(1, set.Count, "HashSet содержит элементы после DoMagic()");
Assert.AreEqual(ghostItem, set.ToArray()[0], "единственный элемент HashSet после DoMagic() все еще ghostItem ");
Assert.IsFalse(set.Contains(ghostItem), "ghostItem не находится через HashSet.Contains() после DoMagic()");
set.Add(ghostItem);
Assert.AreEqual(2, set.Count, "HashSet Add и Count перестают работать корректно после DoMagic()");
Наверное, завести какое-нибудь поле в классе LastObject
и после создания очередного объекта его перезаписывать.
Далее, спокойно можешь его использовать в любом методе класса.
Только не забудь проверить на null
-это будет значить, что объектов создано не было.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Дана строка с символами,например,"aaaa456bbb", и надо заменить все цифры на символ * не используя встроенные функции string
На карте создаются геообъектыУ этих объектов есть уникальный для каждого id и при клике открывается попап с информацией о гообъекте (http://clip2net
Все приветПодскажите, пожалуйста, поставил этот скрипт "Inputmask" Ставлю такую маску { "mask": "8(###)###-##-##", "type": "mobile" } она выглядит так мне необходимо...