
微软
.NET 9在性能、安全和功能等方面有诸多改进,修改达数千项。今天主要带大家体验我们常用且有变化的功能。首先,可在命令行使用dotnet --list-sdks指令查看是否已安装.NET9。
安装主要有两种方式,其一为直接下载.NET9 SDK来安装。
第二种方法是将IDE Visual Studio更新到17.12.0或者更高版本。像我的IDE版本为17.11.6,直接选择更新就好;要是版本更旧,例如17.11.4,那就得更新两次才行。
再次执行dotnet --list-sdks命令,发现安装成功,结果如下:
执行后的效果如下:
单独使用ESC(Escape)字符的转义序列,表示后面接着的字符不可见。我们可用u001b和x1b来查看效果,结果是看字未显示出来。
然后把u001b和x1b改成u001b1和x1b1,接着看一下效果。
从图中能够看到,使用u001b1时,u001b后面的一个字符无法显示;使用x1b1后则变成了问号?。这是由于x1b1被整体当作一个更长的十六进制序列来识别,而非简单的控制字符,从而产生歧义。所以不推荐使用x1b,此次新增了转义字符e,效果如下。
现在对象初始值设定项表达式里,隐式从末尾开始的索引运算符被允许使用。我们来看个例子,先创建一个ImplicitIndex类,其中有个Numbers属性,这个属性是一个整数数组,其长度为5。如今,在初始化ImplicitIndex类时就能初始化Numbers属性,还能用从末尾开始的索引运算符填充数组的值。我们先看.NET8中的效果,鼠标移到错误处,能发现老版本不支持此功能,见下图。
使用.NET9就能够做到。以前params只支持数组,现在params参数能支持更多集合类型了,像Span、ReadOnlySpan、IEnumerable等都在支持范围内。这样我们传入集合参数时就更灵活,不必先把集合转为数组再传输。params关键字能让方法接收数量可变的参数,这些参数一般为单一类型的参数集。params的参数常见的可以是数组、集合或者其他实现了IEnumerable接口的类型,不过存在一些限制,像有些类型虽实现了IEnumerable接口,但却不受支持。本次更新带来了新的锁类型System.Threading.Lock,其作用是实现互斥。以前的版本一般用object类型加锁,现在则有了专门用于加锁的Lock类型。新的Lock类型将让代码更洁净、安全、高效。新的锁定机制里,Monitor的底层实现被EnterScope替代了。并且它遵循Dispose模式,返回ref struct,所以能和using语句一起使用。我们一同来看下面的代码示例:在实体里,我们常将Guid用作主键。用Guid.NewGuid()能轻松生成新Guid,该方法生成的Guid是按照UUID第四版本规范生成的。现在能够利用Guid.CreateVersion7()方法来创建UUID的第七个版本了,该版本UUID的主要功能为包含时间戳,其数据结构如下:48位时间戳、12位随机数、62位随机数。这就表明v7版本的UUID能够按照时间排序了,在数据库里使用会更便捷。并且Guid.CreateVersion7()方法还有一个重载方法,该方法接收DateTimeOffset类型的时间戳,可用于通过指定时间来创建UUID。测试方法代码和示例源码都已上传到代码库,有兴趣的人可以去看看。地址:https://gitee.com/hugogoos/Planner。
Copyright © 2025 IZhiDa.com All Rights Reserved.
知答 版权所有 粤ICP备2023042255号