首页 > 编程语言 >.NET Core 3 Preview 2发布,C#8更强大的模式匹配

.NET Core 3 Preview 2发布,C#8更强大的模式匹配

时间:2023-03-21 18:04:54浏览次数:57  
标签:Core C# switch Closed NET Preview


英文原文:​​Announcing .NET Core 3 Preview 2​

.NET Core 3 Preview 2 发布了,此版本主要带来了 C# 8 相关的新功能,C# 8 Preview 2 是 .NET Core 3 SDK 的一部分。

C# 8 中使用模式进行更多操作,主要特性包括:

using 声明

改变需要缩进代码的方式,现在可以编写以下代码,该代码将 using 声明附加到当前语句块的范围,然后将该对象放在其末尾。

static void Main (string[] args)
{
using var options = Parse (args);
if (options["verbose"]) { WriteLine ("Logging..."); }

} // options disposed here

switch 表达式

C# 8 引入了 switch 表达式,它支持更简洁的语法,因为它是一个表达式,所以会返回一个值,并完全集成在模式匹配中。

switch 关键字是 “infix”,用法 demo:

static string Display (object o) => o switch
{
Point { X: 0, Y: 0 } => "origin",
Point { X: var x, Y: var y } => $"({x}, {y})",
_ => "unknown"
};

或者:

static State ChangeState (State current, Transition transition, bool hasKey) =>
(current, transition) switch
{
(Opened, Close) => Closed,
(Closed, Open) => Opened,
(Closed, Lock) when hasKey => Locked,
(Locked, Unlock) when hasKey => Closed,
_ => throw new InvalidOperationException ($"Invalid transition")
};

异步流

异步流是 C# 8 的另一个主要改进,它需要编译器和框架库匹配才能正常工作。如果要使用 Visual Studio 2019 Preview 2 或 Visual Studio Code 的 C# 扩展的最新预览版进行开发,则需要 .NET Core 3.0 Preview 2 才能使用异步流。

除了 C# 8 相关变化,还包括以下更新内容:

  • IEEE 浮点改进
  • .NET 平台依赖内在函数的改进
  • 引入了一个新的快速 JSON Writer & JSON 文档
  • GPIO 支持 Raspberry Pi
  • Assembly unloadability
  • Windows 原生互操作

详情查看​​发布公告​​。

下载地址:​​https://dotnet.microsoft.com/download/dotnet-core/3.0​

标签:Core,C#,switch,Closed,NET,Preview
From: https://blog.51cto.com/dupeng0811/6140741

相关文章

  • C#转换int列表到字符串Convert simple int array to string C#
    在netframework中已经有现成的类库可以解决这个问题了。Join(String,IEnumerable<String>)串联类型为[IEnumerable]的[String]构造集合的成员,其中在每个成员之间使用指......
  • 基于PaddleOCR的多视角集装箱箱号检测识别
    基于PaddleOCR的多视角集装箱箱号检测识别一、项目介绍集装箱号是指装运出口货物集装箱的箱号,填写托运单时必填此项。标准箱号构成基本概念:采用ISO6346(1995)标准标准集装......
  • 初学React useEffect Hook
    ReactHooks是从功能组件访问React的状态和生命周期方法的最佳方式。​​useEffect​​​Hook是一个在渲染之后和每次DOM更新时运行的函数(效果)。在本文中,将讨论一些......
  • Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are required
    #情景今天在搭建springboot+mybatis环境的时候遇到的问题,大概率是版本导致的冲突问题#解决1.第一种解决方案<dependency><groupId>org.springframework.boot</groupI......
  • Kubernetes(k8s) 咻咻咻
    #1.k8s集群架构组件#master节点*apiservice集群统一入口,以restful方式,交给etcd存储*scheduler节点调度,选择node节点进行部署*controller-manager处理集群中常规的后台......
  • docker安装kafka并测试
    #1.下载docker镜像dockerpullwurstmeister/zookeeperdockerpullwurstmeister/kafka#2.启动zookeeper(单机方式)dockerrun-d--namezookeeper-p2181:2181-tw......
  • flink 数据无法写入elasticsearch5且不报错
    #前言其实和flink没啥关系,只是正好场景使用的是flink,问题在于elasticsearch5的参数设置#问题之前代码,数据无法写入,但是也不报错,后来添加了一个参数设置,就可以写入了#参数......
  • CVPR 2023 | GPT-4与文心一言同台竞技,居然是为了自动驾驶UniAD工作!
    以下文章来源于OpenDriveLab ,作者OpenDriveLa00  前言都说ChatGPT是自然语言处理中技术大魔王,国内百度的文心一言是国内技术一霸,那自动驾驶中的技术魔王,你听过说吗?另外......
  • Matlab 将矩阵循环写入同一个Excel中不同命名的Sheet中
    前言由于需要计算不同行政区划不同年份的某个指标变化情况,实际上是三种变量三维数组,除去在matlab内部保存变量外,写入Excel方便查看制表教程代码参考:https://ww2.mathw......
  • 【vue-blog】从SCF改为tsx
    修改tsconfig.json{//..."compilerOptions":{//增加对jsx的支持"jsx":"preserve"},//...}创建tsx文件1.index.tsximport{defineCompon......