.NET 7 预览版 2 已发布,NativeAOT 正式可用

 .NET 7 Preview 2 已发布,第二个预览版包括对 RegEx 源生成器的增强、将 NativeAOT 从实验状态转移到运行时的进展,以及对“dotnet new”CLI SDK 的一系列重大改进。

在此下载适用于 Windows、macOS 和 Linux 的 .NET 7 Preview 2 。

引入新的正则表达式源生成器

 新的正则表达式源生成器(Issues 44676)在不增加启动成本的情况下,为编译带来了性能好处,还提供了良好的调试体验。

要开始使用新的正则表达式源生成器,只需将包含类型转换为分部(partial)类型,并使用 RegexGenerator 属性声明一个新的分部方法。该方法将返回优化的 Regex 对象,源生成器将自动填充该方法的实现,并在更改模式或传递其他选项时自动更新。下面是一个例子:

之前:

public class Foo
{public Regex regex = new Regex(@"abc|def", RegexOptions.IgnoreCase);public bool Bar(string input){bool isMatch = regex.IsMatch(input);// ..}
}

现在:

public partial class Foo  // <-- Make the class a partial class
{[RegexGenerator(@"abc|def", RegexOptions.IgnoreCase)] // <-- Add the RegexGenerator attribute and pass in your pattern and optionspublic static partial Regex MyRegex(); //  <-- Declare the partial method, which will be implemented by the source generatorpublic bool Bar(string input){bool isMatch = MyRegex().IsMatch(input); // <-- Use the generated engine by invoking the partial method.// ..}
}

NativeAOT 更新

该版本将 NativeAOT 从实验性的 dotnet/runtimelab 存储库中移出并进入稳定的运行时库 dotnet/runtime repo,但尚未在 dotnet SDK 中添加足够的支持,以使用 NativeAOT 发布项目。

SDK 改进

  • 新的 CLI 解析器 + 选项卡完成  #2191 

.NET 新命令为许多子命令提供了更加一致和直观的界面,更新了大量对模板选项和参数的 TAB 补全的支持,在用户输入有效参数和选项时提供快速反馈。以下是新的帮助输出示例:

❯ dotnet new --help
Description:Template Instantiation Commands for .NET CLI.Usage:dotnet new [<template-short-name> [<template-args>...]] [options]dotnet new [command] [options]Arguments:<template-short-name>  A short name of the template to create.<template-args>        Template specific options to use.Options:-?, -h, --help  Show command line help.Commands:install <package>       Installs a template package.uninstall <package>     Uninstalls a template package.update                  Checks the currently installed template packages for update, and install the updates.search <template-name>  Searches for the templates on NuGet.org.list <template-name>    Lists templates containing the specified template name. If no name is specified, lists all templates.

新命令名称

帮助输出中的所有命令不再具有 -- 前缀,更符合用户对 CLI 应用程序中子命令的期望。旧版本(--install 等)仍可用于防止破坏用户脚本,将来会在这些命令中添加过时警告以鼓励迁移。

Tab 补全

dotnet CLI 在 PowerShell、bash、zsh 和 fish 等流行的 shell 上支持 tab 补全已经有一段时间。然而,实现有意义的补全取决于单独的 dotnet 命令。对于 .NET 7,新命令学习了如何提供 Tab 补全:

  • 可用的模板名称(在 dotnet new <template-short-name> 中)

❯ dotnet new angular
angular              grpc                 razor                viewstart            worker               -h
blazorserver         mstest               razorclasslib        web                  wpf                  /?
blazorwasm           mvc                  razorcomponent       webapi               wpfcustomcontrollib  /h
classlib             nugetconfig          react                webapp               wpflib               install
console              nunit                reactredux           webconfig            wpfusercontrollib    list
editorconfig         nunit-test           sln                  winforms             xunit                search
gitignore            page                 tool-manifest        winformscontrollib   --help               uninstall
globaljson           proto                viewimports          winformslib          -?                   update
  • 模板选项(Web 模板中的模板选项列表)

dotnet new web --dry-run
--dry-run                  --language                 --output                   -lang
--exclude-launch-settings  --name                     --type                     -n
--force                    --no-https                 -?                         -o
--framework                --no-restore               -f                         /?
--help                     --no-update-check          -h                         /h
  • 模板选项的允许值(选择模板参数上的选择值)

dotnet new blazorserver --auth Individual
Individual     IndividualB2C  MultiOrg       None           SingleOrg      Windows

 该预览版本还有大量其他更新项目,详情请查看更新公告:https://devblogs.microsoft.com/dotnet/announcing-dotnet-7-preview-2/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/290341.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

地壳中元素含量排名记忆口诀_Nature:利用熔融包裹体的元素和同位素示踪俯冲带流体来源...

Nature&#xff1a;利用熔融包裹体的元素和同位素示踪俯冲带流体来源在汇聚板块边缘&#xff0c;大洋岩石圈通过俯冲作用携带挥发分(尤其是水)进入地幔。这些俯冲下去的水/流体控制着岩浆产物、地震活动、陆壳形成和资源成矿。但是&#xff0c;识别不同流体的来源(沉积物&#…

Windows 10开发基础——文件、文件夹和库(一)

Windows 10开发基础——文件、文件夹和库&#xff08;一&#xff09; 原文:Windows 10开发基础——文件、文件夹和库&#xff08;一&#xff09;主要内容&#xff1a; 1.枚举查询文件和文件夹 2.文本文件读写的三种方法——创建写入和读取文件 3.获得文件的属性 枚举查询文件和…

Sigmoid函数与逻辑回归

文章目录(1). Sigmoid函数的由来——伯努利分布的衍生物1.1 为什么会有 sigmoid 函数的出现&#xff1f;1.2 sigmoid 函数推导过程1.3 sigmoid 函数求导(2). 逻辑回归&#xff08;Logistic Regression&#xff09;2.1 逻辑回归算法的最终本质——求决策边界2.2 逻辑回归算法中的…

C和指针之字符串实现strrstr函数

1、问题 实现strrstr(const char *str, const char *str2)函数,就是从最右边开始,找到第一次出现字符str2,然后返回指向这个字符的指针,找不到返回NULL,str2和str1一个为NULL 返回 NULL 2、思路 我们用2个变量, 先用strstr一个变量找一个保存当前地址,然后再用strstr去…

括号匹配

CTRL SHIFTP 括号匹配

react connect

connect([mapStateToProps], [mapDispatchToProps], [mergeProps],[options])连接 React 组件与 Redux store。连接操作不会改变原来的组件类&#xff0c;反而返回一个新的已与 Redux store 连接的组件类。参数[mapStateToProps(state, [ownProps]): stateProps] (Function): 如…

Avalonia跨平台入门第二十二篇之人脸检测

在前面分享的几篇中咱已经玩耍了Popup、ListBox多选、Grid动态分、RadioButton模板、控件的拖放效果、控件的置顶和置底、控件的锁定、自定义Window样式、动画效果、Expander控件、ListBox折叠列表、聊天窗口、ListBox图片消息、窗口抖动、语音发送、语音播放、语音播放问题、玩…

pkpm板按弹性计算还是塑性_PKPM中的S\R验算显红原因分析

PKPM软件砼结构施工图中的&#xff0c;梁的配筋面积中&#xff0c;SR验算&#xff0c;经常会有个别构件显红的情况。查了一下PKPM说明书&#xff0c;并没有针对此情况的详细说明。根据本人的实际经验&#xff0c;总结了一下解决此问题的主要方法&#xff1a;一.超筋SR的值显示为…

C和指针之字符串strspn、strcspn函数源代码的实现

1、strspn strcspn介绍 1)size_t strspn(const char *str, const char * accept); 我的理解是字符串str中前面连续的字符有多少在accept中,如果哪一个没在accept中,就到这里结束了,后面不比了,比如 char *str = "xnufux dfafa"; char accept = "linux"…

StackExchange.Redis 使用 (一)

在StackExchange.Redis中最重要的对象是ConnectionMultiplexer类&#xff0c; 它存在于StackExchange.Redis命名空间中。这个类隐藏了Redis服务的操作细节&#xff0c;ConnectionMultiplexer类做了很多东西&#xff0c; 在所有调用之间它被设计为共享和重用的。不应该为每一个操…

多智能体连续行为空间问题求解——MADDPG

目录1. 问题出现&#xff1a;连续行为空间出现2. DDPG 算法2.1 DDPG 算法原理2.2 DDPG 算法实现代码2.2.1 Actor & Critic2.2.2 Target Network2.2.3 Memory Pool2.2.4 Update Parameters&#xff08;evaluate network&#xff09;2.2.5 Update Parameters&#xff08;targ…

在.NET 6 中如何创建和使用 HTTP 客户端 SDK

如今&#xff0c;基于云、微服务或物联网的应用程序通常依赖于通过网络与其他系统通信。每个服务都在自己的进程中运行&#xff0c;并解决一组有限的问题。服务之间的通信是基于一种轻量级的机制&#xff0c;通常是一个 HTTP 资源 API。从.NET 开发人员的角度来看&#xff0c;我…

C和指针之字符串strtok函数

1、strtok函数 头文件&#xff1a;#include <string.h>定义函数&#xff1a;char * strtok(char *s, const char *delim);函数说明&#xff1a;strtok()用来将字符串分割成一个个片段。参数s 指向欲分割的字符串&#xff0c;参数delim 则为分割字符串&#xff0c;当strto…

#CSS# 初识CSS

CSS&#xff1a;Cascading Style Sheet &#xff08;层叠样式表&#xff09; CSS的内容可以分开写入CSS文件中&#xff0c;PHP文件中加入以下语句即可&#xff1a; <link herf"css/style.css" type"text/css" rel"stylesheet"/> 其中&…

js隐藏div

页面上有一个div&#xff0c;用JQuery隐藏<div id"hid_div" class"divID">解决方法&#xff1a;(1)用js&#xff1a;document.getElementById(hid_div).style.display "none";(2)jQuery:${.divID}.hid();ps:如果用方法&#xff08;1&…

ttl接地是高电平还是低电平_功放技术参数1——高电平

在汽车音响中的功放或者DSP再或者是DSP功放中我们都会遇到高电平信号或者低电平信号输入&#xff0c;我们该如何判断主机输出的到底是高电平信号还是低电平信号呢&#xff1f;我们可以用一个很简单的方法来鉴定&#xff0c;那就是主机输出能够直接驱动喇叭的为高电平信号输出&a…

静态属性,函数闭包,call/apply,继承

<!doctype html><html lang"en"><head><meta charset"UTF-8"><title>静态属性,函数闭包,call/apply,继承</title><script type"text/javascript"> /* 一&#xff1a;静态属性在一些面向对象语言里&am…

MultiProcessing中主进程与子进程之间通过管道(Pipe)通信

Python 中 Multiprocessing 实现进程通信1. 如何建立主进程与子进程之间的通信管道&#xff1f;2. 为什么一定要将Pipe中的某些端close()?本文参考自&#xff1a;python 学习笔记 - Queue & Pipes&#xff0c;进程间通讯 1. 如何建立主进程与子进程之间的通信管道&#xf…

如何为 .NET 项目自定义强制代码样式规则

前言每个人都有自己的代码样式习惯:命名约定、大括号、空格、换行等。但是&#xff0c;作为一个团队来说&#xff0c;应该使用同样的代码样式规则。这样可以有效减少编译器的警告/建议&#xff0c;保证阅读代码的人员理解一致。今天我们介绍一种为单独的 .NET 项目定义代码样式…

C和指针之字符操作(<ctype.h>)

1、字符操作 在头文件<ctype.h>中 1、字符分类 islower(int a) 是否是小写 isupper(int a) 是否是大写 2、字符转换 int tolower(int ch)转换成小写 int woupper(int ch)转换成大写 2、测试Demo #include <stdio.h> #include <ctype.h>int m…