我有一个基本记录类型和一个继承的记录类型,它添加了一些字段。 在运行时,我有一个基本记录类型的实例,并希望将其转换为继承记录类型的实例,而不需要重新输入所有参数。
我尝试了以下方法:
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));
但不幸的是,ChildRecord 现在有一个 BaseRecord 类型的属性“baseRecord”,尽管它被委托给基本构造函数,但通常会导致其被省略并且不会作为属性添加到记录中(至少我认为)
有什么方法可以阻止创建“baseRecord”属性吗?
需要手动添加构造函数和属性。
public record ChildRecord : BaseRecord
{
public DateTime dateOfBirth { get; set; }
public ChildRecord(BaseRecord baseRecord, DateTime dateOfBirth)
: base(baseRecord)
=> this.dateOfBirth = dateOfBirth;
}