C#中将普通类快速转换为record类型的快捷方法有哪些
C#普通类转换为Record类型的快捷方法
原类代码示例:
public class Foo { public string Code { get; set; } public string Description { get; set; } public DateTime? EffectiveDate { get; set; } }
目标Record代码示例:
public record Foo(string Code, string Description, DateTime? EffectiveDate);
可用转换方案
方案1:使用VS扩展实现一键转换
VS2019内置快速操作确实没有提供默认的类转Record功能,你可以安装适配VS2019的第三方C#代码转换扩展,安装后右键点击类名,就能在弹出的快速操作菜单中看到转换选项,点击即可直接完成转换。
方案2:自定义代码片段实现快速转换
如果不想安装额外扩展,可以自己配置转换用的代码片段:
- 打开VS2019顶部菜单栏的「工具 > 代码片段管理器」,选择C#语言分类
- 新建自定义代码片段,匹配类的属性结构,配置好替换规则后保存
- 后续需要转换时选中对应类,调用自定义代码片段即可快速生成Record代码。
方案3:手动快速转换(临时使用场景)
如果只是偶尔需要转换,不用额外配置,按以下步骤操作即可快速完成转换:
- 把代码中的
class关键字修改为record - 删除属性外层的类大括号,以及所有属性的
{ get; set; }后缀 - 把所有属性的类型和名称用英文括号包裹,不同属性之间用英文逗号分隔,最后末尾加英文分号即可。
前置要求
需要确认你的项目使用的C#语言版本不低于9.0,Record是C# 9.0才引入的语法,低于该版本的项目需要先在项目属性中升级语言版本后才能正常使用。
内容的提问来源于stack exchange,提问作者user3177651
相关产品推荐
相关产品推荐

