⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

C# Record 类型详解

学习 C# 9 引入的 record 类型,掌握不可变数据建模与值相等性比较。 · 难度:入门 · +15XP

Record 类型概述

Record 是 C# 9 引入的一种引用类型,专为不可变数据建模而设计。与 class 不同,record 默认提供基于值的相等性(比较属性内容),而非引用相等性。它非常适合 DTO、API 响应、配置对象等场景。

基本语法

public record Person(string FirstName, string LastName);

上述代码创建了一个具有两个只读属性(FirstName、LastName)的 record,并自动生成了构造函数、ToString、Equals、GetHashCode 和 Deconstruct 方法。

Record vs Class

特性RecordClass
相等性基于属性值基于引用
可变性默认不可变可变
位置参数支持需手动编写
With 表达式支持不支持

With 表达式

使用 with 关键字可以创建现有 record 的副本,并修改部分属性。

Person p1 = new("Alice", "Wang");
Person p2 = p1 with { LastName = "Li" };
Console.WriteLine(p2); // 输出: Person { FirstName = Alice, LastName = Li }

继承与属性

Record 可以继承自另一个 record,但不可继承 class。

public record Student(string FirstName, string LastName, int Grade) : Person(FirstName, LastName);

练习提示

Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 148 篇
0 完成
🔥 0