其他
.NET 6 新特性:最实用的5个特性
前言
不知不觉,.NET 6新特性系列文章已经写了20多篇,终于要告一段落了。在这么多特性中,最喜欢如下5个特性
1、最小Web API
仅需三行代码,就可以生成一个完整功能的Web API:
var app = WebApplication.Create(args);
app.MapGet("/", () => "hello My IO!");
app.Run();
虽然这看起来非常简陋,但是必须看到这个特性的真正价值——对于新人来说,更容易入门和理解。与其在开始时就使事情变得复杂,不如先简化事情再稍后增加复杂性。
2、热重载
修改代码后无需重新编译,就可以将代码更改立即应用于正在运行的应用程序上。
3、隐式using指令
再也不用在cs文件中写大量using指令了,只需修改项目文件,即可增加我们的global using:
<ItemGroup>
<Using Include="GlobalUsingDemo" />
</ItemGroup>
4、扩展属性模式
可以使用.
引用对象属性的嵌套成员,进行模式匹配:
if(obj is Employee { Manager.Name:"lisi", Manager.Manager.Position: "CEO" } employee)
这可以使模式匹配表达式更易于阅读,特别是对于嵌套较深的类型。拥有的嵌套越多,此功能就越强大。
5、System.Text.Json序列化代码自动生成
只需简单的几行代码:
[JsonSerializable(typeof(WeatherForecast))]
internal partial class WeatherForecastContext : JsonSerializerContext
{
}
就可以在编译时自动生成序列化代码,提升性能:
private static void WeatherForecastSerializeHandler(global::System.Text.Json.Utf8JsonWriter writer, global::WebApplication1.WeatherForecast? value)
{
if (value == null)
{
writer.WriteNullValue();
return;
}
writer.WriteStartObject();
writer.WriteNumber(PropName_TemperatureC, value.TemperatureC);
writer.WriteNumber(PropName_TemperatureF, value.TemperatureF);
writer.WriteString(PropName_Summary, value.Summary);
writer.WriteEndObject();
}
以前都是我们自己用Source Generator开发功能,现在终于微软自己也用上了。
结论
当然.NET 6新特性远远不止于此,只是限于作者精力和能力有限,没有在这个系列中全部体现出来。
- EOF -
看完本文有收获?请转发分享给更多人
推荐关注「DotNet」,提升.Net技能
点赞和在看就是最大的支持❤️