摘要
微软发布了.NET11第五个预览版",对运行时、SDK、类库、ASP.NET Core、.NET MAUI、C#与Entity Framework Core都做了更新。.NET SDK在基于File的App方面获得多项改进。根据发布说明,开发者现在可以使用新的#:ref directive"跨文件拆分代码,该指令可以将另一个基于File的App作为库引用,而无需先创建项目。更多的命令行工具(包括package与NuGet命令)现在已经能够识别基于File的App路径。SDK还捆绑了模型上下文协议(Model Context Protocol)"服务器模板,因此dotnet new mcpserver无需额外包即可运行。此外,项目可以选择开启检查,当已经安装的SDK存在已知漏洞或已到生命周期末期时会发出警告。面向net11.0的控制台与worker应用在启用implicit usings时会自动包含System.Net.Http.Json。C#语言"带来了三项重要的新增功能(均为预览版)。closed class只能在同一assembly内部被派生,文档指出这使编译器能够验证switch表达式是否覆盖了所有分支。public closed record class GateState; public record class Closed : GateState; public record class Open(float Percent) : GateState; static string Describe(GateState state) => state switch { Closed => "closed", Open(var percent) => $"{percent}% open" };新的union declaration"可以创建一个值类型,该类型在一组固定的case类型之间取其中一个,并支持模式匹配。关于Unsafe Evolution"的工作也在继续,它允许指针类型出现在非unsafe上下文之外,同时将对非托管内存读取的危险边界保留在执行操作处。int value = 42; int* pointer = &value; unsafe { System.Console.