Во время выполнения у меня есть экземпляр базового типа записи, и я хочу преобразовать его в экземпляр унаследованного типа записи без перепечатав все параметры.
Я попробовал следующее:
Код: Выделить всё
public record BaseRecord(string firstName, string lastName);
public record ChildRecord(BaseRecord baseRecord, DateTime dateOfBirth) : BaseRecord(baseRecord);
Код: Выделить всё
var baseRecord = new BaseRecord("John", "Doe");
var childRecord = new ChildRecord(baseRecord, new DateTime(2000, 1, 1));

Есть ли способ предотвратить создание свойства «baseRecord»?
Я не хочу записывать все поля, как в C#, создать производную запись из экземпляра базовой записи
[Разъяснение]:
Спасибо за ответы. Я знал о различных возможностях реализаций.
Моей целью было предотвратить повторение всех унаследованных полей, используя «конструктор копирования» базового класса. Но это привело к тому, что унаследованный класс получил «нежелательное» свойство.
В настоящее время ответ синго наиболее близок к этой цели. Я подожду несколько дней, прежде чем принять его.
Подробнее здесь: https://stackoverflow.com/questions/784 ... ase-record
Мобильная версия