.NET Core 3 Preview 2 发布了,此版本主要带来了 C# 8 相关的新功能,C# 8 Preview 2 是 .NET Core 3 SDK 的一部分。
C# 8 中使用模式进行更多操作,主要特性包括:
改变需要缩进代码的方式,现在可以编写以下代码,该代码将 using 声明附加到当前语句块的范围,然后将该对象放在其末尾。
[cc]static void Main(string[] args)
{
using var options = Parse(args);
if (options[“verbose”]) { WriteLine(“Logging…”); }
} // options disposed here[/cc]
C# 8 引入了 switch 表达式,它支持更简洁的语法,因为它是一个表达式,所以会返回一个值,并完全集成在模式匹配中。
switch 关键字是 “infix”,用法 demo:
[cc]static string Display(object o) => o switch
{
Point { X: 0, Y: 0 } => “origin”,
Point { X: var x, Y: var y } => $”({x}, {y})”,
_ => “unknown”
};[/cc]
或者:
[cc]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”)
};[/cc]
异步流是 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 原生互操作
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/123835.html