.NET 7 预览版 2是NET 7 的第二个预览版,此版本包括对 RegEx 源生成器的增强、将 NativeAOT 从实验状态转移到运行时的进展,以及对“dotnet new”CLI 的一系列重大改进经验。这些位可供您立即获取并开始尝试新功能!
新增功能
在编译时使用源生成器而不是在运行时使用较慢的方法来构建专门的 RegEx 模式匹配引擎。
利用 SDK 改进,提供全新的简化选项卡完成体验,以便在运行时探索模板和参数。dotnet new
不要削减你的兴奋,只是你的应用程序,准备用你自己的创新解决方案尝试 NativeAOT。
Preview 2 版本现在提供以下功能。
引入新的正则表达式源生成器
您是否曾经希望拥有针对您的特定模式优化的专用正则表达式引擎所带来的所有巨大好处,而无需在运行时构建此引擎的开销?
我们很高兴地宣布包含在预览版 1 中的新正则表达式源生成器。它带来了我们编译引擎的所有性能优势,而无需启动成本,并且它具有其他优势,例如提供出色的调试体验以及修剪-友好的。如果您的模式在编译时是已知的,那么新的正则表达式源生成器就是要走的路。
为了开始使用它,您只需要将包含类型转换为partial1,并声明一个带有返回优化对象的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 options
public static partial Regex MyRegex(); // <-- Declare the partial method, which will be implemented by the source generator
public bool Bar(string input)
{
bool isMatch = MyRegex().IsMatch(input); // <-- Use the generated engine by invoking the partial method.
// ..
}
}
就是这样。请尝试一下,如果您有任何反馈,请告诉我们。