Login
C# - быстро склонировать несложный объект
2158 просмотров
Перейти к просмотру всей ветки
in Antwort Срыв покровов 21.10.23 20:59, Zuletzt geändert 21.10.23 22:54 (alex445)
В Repository делаешь функцию T GetInstance() where T : Character и все чистенько без дрочки с серей и десерей.
Я может не понял, что вы сказали, но нужно не ссылку на объект из репы получить, а копию объекта - т.е. скопировать все поля. Т.е. склонировать. Это надо либо вручную писать для всех полей операции копирования, либо через сериализацию-десериализацию автоматически (ну, расставив пару-тройку атрибутов). При этом при изменении состава полей сериализацию проще поддерживать - по сути надо лишь отредактировать конструктор с параметрами. Этот конструктор со всеми параметрами - аналог копировщика из С++.
А сериализация для клонирования используется ещё и потому, что я её же использую и для сохранения состояния объектов. Если бы без этого, то можно было бы просто написать свой конструктор-копировщик. А так - немного меньше работы.