.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、热重载

修改代码后无需重新编译,就可以将代码更改立即应用于正在运行的应用程序上。

3386a2b7fd3a544f8e4a05da627adc54.gif

通过减少等待应用重新生成、重启、重新导航到你在应用中的上一个位置等操作的时间来提高工作效率。

3、隐式using指令

再也不用在cs文件中写大量using指令了,只需修改项目文件,即可增加我们的global using:

<ItemGroup>
    <Using Include="GlobalUsingDemo" />
</ItemGroup>

aa7eb49f8064c543a12f0c581bf27980.png

这可以大大减少模板文件的代码,使你的代码更加紧凑。

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新特性远远不止于此,只是限于作者精力和能力有限,没有在这个系列中全部体现出来。

如果大家有任何想法和建议,欢迎到公众号“My IO”后台留言与我交流!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值