C# 9 中新加入的关键词 init,record,with

为了更好地阐述C#9中的三个新概念,init, record, with,我将分别进行介绍。

init

init修饰符是C#9中一项很有用的新功能,它可以用于定义只能在创建时被修改的变量或属性。使用init修饰符的目的是减少意外修改属性值的情况,例如在构造函数之后不期望修改属性值,这样会增加数据不一致性的风险。以下是一段演示如何使用init修饰符的代码:

public class Person
{
    public int Id { get; init; }
    public string Name { get; init; }
}

Person person = new()
{
    Id = 1,
    Name = "Alice"
};

在上面的代码中,IdName属性被标记为init,这意味着在创建Person对象时可以进行初始化,但初始化后就不允许再修改它们的值了。

record

C#9中的record概念提供了一种简单且高效的方法来创建只有数据的类,同时结合了类和结构体的优点。定义 record 的方式类似于定义类,在类名后添加 record 关键字即可定义成 record 。以下是一个演示如何使用record关键字创建记录类的代码:

public record Dog(string Breed, int Age);

Dog dog1 = new("border collie", 3);
Dog dog2 = new("labrador", 2);

在上面的代码中,我们使用record定义了一个名为Dog的记录类型,它只有两个属性,分别是BreedAge。当我们使用new运算符创建新的Dog对象时,我们可以直接传递实参。

with

with是C#9中一个非常实用的新概念,它可以用来创建一个新对象的副本,但其中的某些属性值可能会被修改。以下是一个演示如何使用with关键字的示例:

var dog = new Dog("bulldog", 4);
var dog2 = dog with { Age = 5 };

在上面的代码中,我们通过将with关键字用于dog对象来创建一个新的dog2对象,同时将Age属性的值修改为5

综上所述,这就是关于C#9中新加入的三个关键词initrecordwith的完整攻略。希望上述内容能够帮助大家更好地理解这些新概念,并为C#程序员提供更多便利。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# 9 中新加入的关键词 init,record,with - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • ASP.NET Core MVC中的模型(Model)

    在本攻略中,我们将详细讲解ASP.NET Core MVC中的模型(Model),并提供两个示例说明。 什么是模型(Model)? 在ASP.NET Core MVC中,模型(Model)是表示应用程序数据的类或对象。模型通常包含与数据库表或其他数据源中的数据相对应的属性。模型还可以包含用于验证数据的方法和属性。 如何创建模型(Model)? 在ASP.NE…

    C# 2023年5月17日
    00
  • ASP.NET CORE WEBAPI 登录 JWT 鉴权 ,接口权限验证

    JWT的简单使用 介绍 当今Web开发中,API的使用越来越广泛,而API的安全性也变得越来越重要。其中,JWT(JSON Web Token)鉴权和授权是一种常见的解决方案。 本篇文章将会介绍JWT鉴权和授权的原理、实现方式以及注意事项。 什么是JWT? JWT是一种基于JSON格式的开放标准(RFC7519),用于在网络上传递声明信息的一种简洁、自包含的…

    C# 2023年4月22日
    00
  • C#实现时间戳的简单方法

    关于“C#实现时间戳的简单方法”,下面是完整的攻略: 什么是时间戳 时间戳是一种表示某个时间点的数字形式。它通常是一个长整型数值,表示某个固定时间点(如1970年1月1日00:00:00)到现在经过的毫秒数或者秒数,是一种比较方便的时间表示方式,被广泛应用于网络通讯和数据存储操作中。 实现时间戳的方法 在C#中,我们可以通过内置的DateTime类来表示日期…

    C# 2023年6月1日
    00
  • 浅谈.Net Core后端单元测试的实现

    在.Net Core后端开发中,单元测试是一种非常重要的测试方法,可以帮助我们快速发现代码中的问题,提高代码质量。本文将详细讲解.Net Core后端单元测试的实现,包括环境搭建、代码实现、示例说明等。 环境搭建 在开始实现.Net Core后端单元测试之前,我们需要先搭建好开发环境。具体来说,我们需要安装以下软件: Visual Studio 2019或更…

    C# 2023年5月16日
    00
  • C#中多线程Tread的使用(推荐)

    C#中多线程Thread的使用 在C#中,可以通过多线程来提升程序的性能。多线程使得程序可以同时执行多个任务,这样增加了程序的吞吐量,提高了程序的响应速度,让用户能够更好的体验使用。本文将详细介绍C#中多线程Thread的使用。 创建Thread对象 在开始使用Thread之前,需要首先创建Thread对象。创建对象有两种方式: 通过ThreadStart委…

    C# 2023年5月15日
    00
  • C# 进制转换的实现(二进制、十六进制、十进制互转)

    下面我将为大家详细讲解 C# 中的进制转换实现,内容包括二进制、十六进制、十进制互转的方法。 前置知识 在进行进制转换之前,我们需要了解以下几个概念: 二进制:以 0、1 为基础的计数系统。 十进制:以 0-9 为基础的计数系统。 十六进制:以 0-9 和 A-F 为基础的计数系统。 进位:某一位达到基数时,进位到前一位并加 1。 借位:某一位借位时,向前一…

    C# 2023年6月7日
    00
  • C#实现收发邮件功能

    C#是一种功能强大的编程语言,支持多种操作系统,可以用于编写桌面应用程序、Web应用程序等。C#提供了丰富的库,使得邮件的收发变得很容易。 在C#中,可以使用SMTP协议发送邮件。以下是详细的步骤: 步骤1:引用命名空间 在实现邮件收发功能之前,需要在程序中引用System.Net.Mail命名空间。在程序中加入以下代码。 using System.Net.…

    C# 2023年6月6日
    00
  • 详解C#如何读写config配置文件

    下面是详细讲解“详解C#如何读写config配置文件”的完整攻略。 1. 什么是config配置文件? .config 配置文件是一个与程序集相关的配置文件,用于存储应用程序的配置信息。它是一个 XML 格式的文本文件,可以包括应用程序需要的自定义设置和参数。 2. 如何读取config配置文件? 在 C# 中,读取配置文件可以通过 Configuratio…

    C# 2023年6月1日
    00
合作推广
合作推广
分享本页
返回顶部