C#9.0:Records

在C#9.0下,record是一个关键字,微软官方目前暂时将它翻译为记录类型。

传统面向对象的编程的核心思想是一个对象有着唯一标识,封装着随时可变的状态。C#也是一直这样设计和工作的。但是一些时候,你就非常需要刚好对立的方式。原来那种默认的方式往往会成为阻力,使得事情变得费时费力。如果你发现你需要整个对象都是不可变的,且行为像一个值,那么你应当考虑将其声明为一个record类型。

所以record类型的实际是一个引用类型 ,但是他具有值类型的行为。

先来回顾一下引用类型,C# 中有两种类型:引用类型和值类型。 引用类型的变量存储对其数据(对象)的引用,而值类型的变量直接包含其数据。 对于引用类型,两种变量可引用同一对象;因此,对一个变量执行的操作会影响另一个变量所引用的对象。 对于值类型,每个变量都具有其自己的数据副本,对一个变量执行的操作不会影响另一个变量。

那我们举个例子,创建一个实体,包含用户名、昵称、年龄

1 /// <summary> 2 /// 用户信息对象 3 /// </summary> 4 public class UserInfo 5 { 6 public string UserName { get; init; } 7 public string UserNickName { get; init; } 8 public int UserAge { get; set; } 9

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpwwxd.html