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

网站开发与维护好找工作吗软文推广营销服务平台

网站开发与维护好找工作吗,软文推广营销服务平台,怎样做有效的黄页网站,做网站用小图标在什么网下载C# 12 中最引人注目的新功能之一是对主构造函数的支持。主构造函数的概念并不新鲜。包括 Scala、Kotlin 和 OCaml 在内的多种编程语言都支持直接在声明类的位置集成构造函数参数。 在本文中,我们将仔细研究主构造函数以及如何在 C# 12 中使用它们。若要运行本文中提…

C# 12 中最引人注目的新功能之一是对主构造函数的支持。主构造函数的概念并不新鲜。包括 Scala、Kotlin 和 OCaml 在内的多种编程语言都支持直接在声明类的位置集成构造函数参数。

在本文中,我们将仔细研究主构造函数以及如何在 C# 12 中使用它们。若要运行本文中提供的代码示例,您应该在系统中安装 Visual Studio 2022。

在 Visual Studio 中创建控制台应用程序项目

首先,让我们在 Visual Studio 中创建一个 .NET Core 控制台应用程序项目。假设您的系统中安装了 Visual Studio 2022,请按照下面概述的步骤创建新的 .NET Core 控制台应用程序。

  1. 启动 Visual Studio IDE。
  2. 单击“创建新项目”。
  3. 在“创建新项目”窗口中,从显示的模板列表中选择“控制台应用程序(.NET Core)”。
  4. 点击下一步。
  5. 在“配置新项目”窗口中,指定新项目的名称和位置。
  6. 点击下一步。
  7. 在接下来显示的“其他信息”窗口中,选择“.NET 8.0(长期支持)”作为您要使用的框架版本。
  8. 单击“创建”。

在本文的后续部分中,我们将使用此 .NET 8 控制台应用程序项目来处理主构造函数。

 

什么是主构造函数?

主构造函数使您能够在类或结构中声明构造函数,并在整个类型主体中使用可用的参数。使用主构造函数,您可以为类或结构创建构造函数,而无需编写代码,即无需显式声明私有数据成员并实现构造函数以将构造函数参数的值分配给这些数据成员。

以下代码片段说明了在结构内声明的主构造函数。

public readonly struct Rectangle(double x, double y)
{//Members of the struct Rectangle
}

下面是在类中声明的主构造函数的简单实现。

public class Rectangle(double x, double y)
{//Members of the class Rectangle
}

主要构造函数参数的作用域为整个类。除了辅助构造函数之外,所有实例成员都可以访问它们。在 C# 中,编译器推断我们需要哪些私有字段并捕获相应的值。

考虑以下代码段,它为名为 Customer 的类实现主构造函数。

public class Customer(int id, string FirstName, string LastName)
{//Implement the class members here
}

与此类相关的属性将使用主构造函数的参数自动初始化。

C# 中主构造函数的优缺点

C# 中的主构造函数具有三个主要优点。

  1. 简化的语法:通过使用主构造函数,您可以直接在构造函数参数中声明和初始化属性,从而减少代码重复。
  2. 轻松初始化:您可以利用主构造函数来使用默认值或作为构造函数参数传递的特定值来初始化类的属性。
  3. 不变性:您可以利用主构造函数中初始化的属性的 init 修饰符,以确保它们在对象初始化后是只读的。

C# 中的主构造函数也有许多缺点。

  1. 灵活性降低:主构造函数设计得很简单,这会限制它们的灵活性。当需要复杂的初始化逻辑或需要额外的操作(例如验证、调度或日志记录)时,它们可能不适合。 
  2. 不太明确的代码:减少样板代码是一个很好的做法,但它也可以使代码不那么明确。缺乏经验的开发人员可能需要帮助来理解属性如何初始化或构造函数如何工作。
  3. 兼容性问题:将主构造函数的新语法无缝集成到现有代码库中可能具有挑战性,特别是在代码库庞大且复杂的情况下。
  4. 对访问修饰符的控制有限:与传统构造函数相比,主构造函数对访问修饰符的控制较少。因此,主构造函数可能不适合需要对可访问性进行细粒度控制的场景。
  5. 学习曲线:由于主构造函数对于 C# 编程语言来说是新的,因此您的开发人员可能需要时间来加快使用它的速度,这可能会减慢项目的开发速度。

在 C# 中使用带有主构造函数的重载构造函数

您可以在任何具有主构造函数的类中使用重载构造函数。以下代码片段说明了如何在具有主构造函数的类中创建多个构造函数。

public class User(int id, string userName, string password)
{//Implement the members of the class here
}// Other members of the class
}

在记录类型中使用主构造函数与在 C# 中使用类

虽然记录和类都支持主构造函数,但行为上存在细微差别。例如,以下是定义使用主构造函数的记录类型的方法:

public record AuthorRecord(int Id, string firstName, string lastName, string address, string phone);

以下是定义使用主构造函数的类的方法:

public record AuthorClass(int Id, string firstName, string lastName, string address, string phone);

您可以创建上述记录类型的实例,如下所示。

var authorRecord = AuthorRecord(int Id, string firstName, string lastName, string address, string phone);

但是,如果您尝试按照下面所示的方式为记录类型的数据成员赋值,您将遇到编译器错误。

authorRecord.Id = 1;

相比之下,您可以创建上述类类型的实例并向其数据成员赋值,如下所示,而不会出现任何编译器错误。

var authorClass = AuthorClass(int Id, string firstName, string lastName, string address, string phone);
authorClass.Id = 1;

在 C# 的主构造函数中使用依赖注入

在 C# 应用程序中实现依赖项注入时,您可以利用主构造函数。让我们通过一个例子来理解这一点。下面的代码说明了如何在 C# 中实现构造函数注入。

public class AuthorService
{private readonly IAuthorRepository _authorRepository;public AuthorService(IAuthorRepository authorRepository){_authorRepository = authorRepository;}public async Task<IEnumerable<Author>> GetAll(){return await _authorRepository.GetAll();}
}

最后,请注意如何使用主构造函数使代码更加清晰,如下面的代码所示。

public class AuthorService (IAuthorRepository authorRepository)
{public async Task<IEnumerable<Author>> GetAll(){return await authorRepository.GetAll();}
}

尽管主构造函数最初是在 C# 9 中引入的,但它们仅限于记录类型。使用 C# 12,您可以在记录类型、类和结构中使用主构造函数,帮助您编写更清晰、更简洁的样板代码。


作者:Joydip Kanjilal​

更多技术干货请关注公号【云原生数据库

squids.cn,云数据库RDS,迁移工具DBMotion,云备份DBTwin等数据库生态工具。

irds.cn,多数据库管理平台(私有云)。

http://www.dinnco.com/news/25530.html

相关文章:

  • 企业网站的内容2023年免费进入b站
  • wordpress教程自学网滕州seo
  • php网站开发框架网站怎么快速收录
  • 如何预览做好的网站seowhy官网
  • 怎么创建一个软件seo优化是利用规则提高排名
  • 做网站一般多少网站建设哪家好公司
  • 深圳国外网站制作公司怎么自己做个网站
  • 网站效果图怎么做的推广app拿返佣的平台
  • wordpress插件中文版下载关键词优化哪家好
  • 建筑网站大全豆丁网百度如何发布作品
  • 深圳网站建设代理网站链接交易
  • 做免费网站有哪些济南网站seo公司
  • 网站 robots.txt成人培训班有哪些课程
  • 泉州建设培训中心网站seo专员工资一般多少
  • 完本小说做多的网站可以免费发布广告的平台有哪些
  • 网站建设简介淄博网页设计与制作案例教程
  • 汉阳网站建设鄂icp淘宝宝贝排名查询
  • 安防网站建设优点福州百度网站排名优化
  • 网站建设话术关键词市场营销活动策划方案
  • 店面设计要素365优化大师软件下载
  • 网站建设费用报价单济南百度推广公司电话
  • 模板做网站上传重庆网站seo多少钱
  • 长春网站制作软件seo在线优化排名
  • 翻书效果的网站百度权重等级
  • 网站制作计算机无人在线观看高清视频单曲直播
  • 做网站快速排名百度的网址怎么写
  • iis发布网站页面出问题最近三天的新闻大事摘抄
  • 域名免费注册网站网站seo优化推广
  • 潍坊做网站维护费用免费模板网站
  • 大型门户网站建设哪便宜阿里巴巴官网