当前位置: 首页 > news >正文

百度申诉网站虎门今日头条新闻

百度申诉网站,虎门今日头条新闻,做卖车网站需要什么手续费,制作一个学校门户网站在 C# 9.0 中引入了 record 关键字,用于定义记录类型(Record Types)。记录类型是一种轻量级的数据载体,专注于表示数据,它提供了内置的相等性比较、生成属性和方法等功能,使得编写数据类更加简洁和高效。 …

在 C# 9.0 中引入了 record 关键字,用于定义记录类型(Record Types)。记录类型是一种轻量级的数据载体,专注于表示数据,它提供了内置的相等性比较、生成属性和方法等功能,使得编写数据类更加简洁和高效。

基本概念

  • 不可变性:记录类型默认是不可变的,这意味着它们的属性是只读的,不能被修改。
  • 相等性:记录类型根据其值进行相等比较,而不是引用比较。
  • 自动化成员:记录类型可以自动生成构造函数、属性、ToStringEqualsGetHashCode 方法。

声明记录类型

记录类型的声明非常简洁,基本语法如下:

public record Person(string FirstName, string LastName, int Age);

这会生成一个包含 FirstNameLastNameAge 属性的记录类型,并自动提供构造函数、ToStringEqualsGetHashCode 方法。

不可变性和可变性

  • 不可变记录:默认情况下,记录类型是不可变的,属性是只读的。例如:
public record Person(string FirstName, string LastName, int Age);
  • 可变记录:可以通过在记录类型后添加 with 关键字来创建可变记录,允许修改属性。例如:
public record Person(string FirstName, string LastName, int Age) with;

构造函数和初始化

记录类型自动生成构造函数,可以直接通过属性初始化:

var person = new Person("John", "Doe", 30);

相等性比较

记录类型根据值进行相等比较:

var person1 = new Person("John", "Doe", 30);
var person2 = new Person("John", "Doe", 30);
Console.WriteLine(person1 == person2); // 输出: True

自定义方法和成员

可以在记录类型中添加自定义方法和成员:

public record Person(string FirstName, string LastName, int Age)
{public string FullName => $"{FirstName} {LastName}";
}

属性访问器

默认情况下,记录类型的属性是只读的。如果需要自定义属性行为,可以显式定义属性:

public record Person
{public string FirstName { get; init; }public string LastName { get; init; }public int Age { get; init; }
}

使用 init 访问器可以在初始化对象时设置值,但之后不能修改。

继承和派生

记录类型可以继承其他记录类型,派生记录类型会继承基记录类型的属性和方法。

public record Person(string FirstName, string LastName, int Age);
public record Employee(string FirstName, string LastName, int Age, string EmployeeId) : Person(FirstName, LastName, Age);

使用场景

  • 数据传输对象(DTO):记录类型非常适合用来表示数据传输对象,因为它们专注于数据的表示和传输。
  • 不可变数据结构:在需要不可变数据的情况下,记录类型提供了方便的不可变性支持。
  • 配置对象:记录类型可以用来表示应用程序的配置选项,因为它们易于创建和比较。

示例代码

public record Person(string FirstName, string LastName, int Age)
{public string FullName => $"{FirstName} {LastName}";
}class Program
{static void Main(){var person1 = new Person("John", "Doe", 30);var person2 = new Person("John", "Doe", 30);var person3 = new Person("Jane", "Doe", 25);Console.WriteLine(person1 == person2); // TrueConsole.WriteLine(person1 == person3); // FalseConsole.WriteLine(person1.FullName); // John Doe}
}
http://www.dinnco.com/news/17856.html

相关文章:

  • 百度怎么做公司的网站重庆森林经典台词图片
  • 哈尔滨建站哪个好优化网站搜索
  • 苏州网站设计聚尚网络百度投诉中心人工电话
  • 网站建设套餐是什么最近一两天的新闻有哪些
  • 舆情网站推荐运用搜索引擎营销的案例
  • 哪些网站可以免费什么网站百度收录快
  • 轻淘客网站怎么做网络推广哪个平台好
  • 网站建设建站网怎么提交百度收录
  • 网站开发是否属于技术合同保定seo排名外包
  • 模板网站定制网站推广app的单子都在哪里接的
  • 腾讯做的电子商务网站seo挖关键词
  • 网站开发报价标准电商软文范例
  • 北京运营推广网站建设外包公司和劳务派遣的区别
  • 京东联盟的网站怎么做建站系统软件有哪些
  • 推荐几个用vue做的网站最佳bt磁力猫
  • 创业型企业网站模板十大管理培训课程
  • 香港做批发的网站有哪些手续如何建立和设计公司网站
  • 青岛做网站外贸展示型网站建设公司
  • 网站架构工程师整站优化关键词推广
  • cms建站系统哪家好长沙网络公关公司
  • wordpress.com和orgseo手机搜索快速排名
  • 提供网站制作深圳知名seo公司
  • 房产网站开发方案线上推广工作内容
  • 诸城个人网站建设优化大师怎么卸载
  • 从化网站制作疫情防控数据
  • 厦门 外贸商城网站建设百度统计平台
  • 网站优化公司的seo做的好房地产营销策略有哪些
  • 金华市网站建设网络推广和seo
  • 网站域名空间怎么弄啊刷关键词排名seo软件
  • wordpress 使用mssql东莞网络优化服务商