You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从C#基Record实例创建派生Record?有没有专属快捷方式?

从基Record生成派生Record的快捷方式

我们知道用with关键字可以基于现有Record实例生成新实例,继承其部分或全部属性值。那有没有类似的Record专属快捷方式,能从基Record生成派生Record?

给出的示例代码如下:

public record class root {
    public string name { get; set; }
}
public record class extended : root {
    public string surname { get; set; }
}

//从root中获取共享属性
public extended from(root rt, string surname) {
    return //???
}

public example() {
    root rt = new root() { name = "jhon" };
    extended ext = from(root rt, "wick");
}

虽然可以用反射或者接收root参数的自定义构造函数实现,但想知道有没有Record专属的简便方法。


可行方案

实际上可以利用Record自动实现的实例构造函数特性,编写如下代码:

protected extended(root original, string surname) : base(original) {
   this.Surname = surname;
}

这种方式无需手动复制基类属性值,能有效避免代码重复。

内容的提问来源于stack exchange,提问作者Andrea Bardelli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 02:27:03