探索 C# 9 的记录类型(record)

一.介绍

C# 9 引入了一项名为记录类型的新功能,使构建不可变数据结构变得更加容易。无论您是刚开始使用 C# 还是已经编码一段时间,了解记录类型都可以真正提高您的编码水平。在这篇文章中,我们将介绍 C# 9 记录类型的基础知识,了解它们的工作原理、它们为什么很棒,并提供一些示例来帮助您更好地理解。

二.理解 C# 9 中的记录

记录提供了一种定义不可变数据结构的直接方法。与常规类不同,记录具有基于值的相等性、不变性和解构性等内置功能,这使得它们非常适合处理程序中的数据实体。

三.句法

让我们看一下记录类型的结构。在 C# 9 中,创建记录非常简单:使用 record 关键字,后跟记录的名称及其用括号括起来的属性。这是一个简单的例子:

复制代码
public record Person
{
    public string FirstName { get; init; }
    public string LastName { get; init; }
}

在此示例中,我们创建了一个具有两个属性的 Person 记录:FirstName 和 LastName。通过使用 init 访问器,我们确保这些属性只能在对象初始化期间设置,这有助于保持不变性。

四.记录类型的好处

  1. **简洁的语法:**记录类型允许您仅用几行创建复杂的数据结构,减少不必要的代码并使您的程序更易于管理。
  2. **基于值的相等性:**使用记录类型,您可以获得自动的基于值的相等性,因此您可以根据它们的属性值而不是引用来比较两个记录。
  3. **不可变属性:**记录属性默认是不可变的,这意味着在对象初始化后它们不能被更改。此功能有助于防止意外的副作用并提高代码的可预测性。

五.例子

  1. 创建记录

    var person1 = new Person { FirstName = "Lalji", LastName = "Dhameliya" };
    var person2 = new Person { FirstName = "Lalji", LastName = "Dhameliya" };

2.基于价值的平等

复制代码
bool areEqual = person1.Equals(person2); //如果FirstName和LastName相等,则为true

3.解构

复制代码
var (first, last) = person1; //将记录分解为单个变量

六.结论

C# 9 的记录类型使组织数据和编写更好的代码变得容易。它们易于使用,提供公平的比较方法,并保护您的数据免受不必要的更改。无论您处理的是基本数据还是复杂数据,记录类型都是明智的选择。立即在您的 C# 项目中试用它们,看看它们如何让您的编码生活更轻松!

相关推荐
万化冥合3 分钟前
怎么批量把 Word 转 PDF?
python·pdf·c#·word
qq_4017004111 分钟前
Qt Modbus 源码剖析:从 QModbusClient 到工业级通信框架
开发语言·qt·系统架构
星夜离尘5613 分钟前
MATLAB 角度解缠遇到丢样:先分段,再说明圈数为什么不可恢复
开发语言·matlab
我命由我1234521 分钟前
6-2.Python 异常处理 - 异常捕获(捕获指定异常、常见异常类型、异常信息)
java·运维·开发语言·python·http·https·java-ee
ZoeLandia23 分钟前
React08:自定义 Hook
开发语言·前端·react.js·typescript
染指111039 分钟前
157.Agent-LangGraph-工具(实现ReAct Agent模式)
开发语言·人工智能·python·langchain·agents
程序猿乐锅1 小时前
【从0-1学习Python | 第九篇】继承
开发语言·后端·python·学习·fastapi
wdfk_prog1 小时前
lwip教程 38:从 `lwipopts.h` 到 Port Contract——lwIP 裁剪、构建选择、OS Port 与 Network Port
java·开发语言
开开心心就好1 小时前
证件照排版打印工具,免费可自定义尺寸
服务器·开发语言·算法·随机森林·pdf·音视频·散列表
我是高手高手高高手1 小时前
宝塔 PHP多版本,切换PHP默认版本
开发语言·php