C#:记录

C# 中的记录是一个类或结构,它为使用数据模型提供特定的语法和行为。在下列情况下,请考虑使用记录而不是类或结构:声明和实例化类或结构时使用的语法与操作记录时的相同。只是将 关键字替换为 ,或者使用 而不是 。 同样地,记录类支持相同的表示继承关系的语法。记录与类的区别如下所示:记录结构与结构的不同之处是,编译器合成了方法来确定相等性和 。 编译器为位置记录结构合成 方法。下面的示例定义了一个公共记录,它使用位置参数来声明和实例化记录。 然后,它会输出类型名称和属性值:下面的示例演示了记录中的值相
摘要由CSDN通过智能技术生成

C# 中的记录是一个类或结构,它为使用数据模型提供特定的语法和行为。

C# 9 引入了 record 类型,可创建此引用类型而不创建类或结构。 记录是带有内置行为的类,用于将数据封装在不可变类型中。 C# 10 引入了 record struct 值类型。 记录(record class 或 record struct)提供以下功能:

  • 用于创建具有不可变属性的引用类型的简明语法。
  • 值相等性。 两个记录类型的变量在它们的类型和两个记录中每个字段的值都相同时,它们是相等的。 类使用引用相等性,即:如果类类型的两个变量引用同一对象,则这两个变量是相等的。
  • 非破坏性变化的简明语法。 使用 with 表达式,可以创建作为现有实例副本的新记录实例,但更改了指定的属性值。
  • 显示的内置格式设置。 ToString 方法输出记录类型名称以及公共属性的名称和值。
  • 支持记录类中的继承层次结构。 记录类支持继承。 记录结构不支持继承。

何时使用记录


在下列情况下,请考虑使用记录而不是类或结构:

  • 你想要定义依赖值相等性的数据模型。对记录来说,值相等性表示当类型匹配且所有属性和字段值都匹配时,记录类型的两个变量相等。
  • 你想要定义对象不可变的类型。不可变类型会阻止你在对象实例化后更改该对象的任何属性或字段值。

记录与类和结构的区别


声明和实例化类或结构时使用的语法与操作记录时的相同。只是将 class 关键字替换为 <

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值