C# 13 中的新功能:增强的参数、性能提升和新的扩展类型

在Microsoft Build 2024期间,微软宣布了流行的 .NET 编程语言最新版本C# 13的新预览 功能。作为对params参数最显着的改进,宣布了新的扩展类型,该版本还为 .NET 开发人员提供了多项性能和内存增强功能。

在 C# 13 中,params关键字不再局限于数组。当在参数前使用时,params允许方法接受零个或多个值的逗号分隔列表,这些值放置在指定类型的集合中。

现在,params参数类型可以是任何与集合表达式兼容的集合类型,例如List、Span和IEnumerable。 声明如果遵循特定的准则,也可以使用自定义集合类型。

void PrintList(params IEnumerable<string> list) 
    => Console.WriteLine(string.Join(", ", list));

PrintList("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat");

// prints "Sun, Mon, Tue, Wed, Thu, Fri, Sat"

此外,性能增强是 C# 13 的重点,特别是在使用 System.Span 和 System.ReadOnlySpan 时,这有助于减少内存分配。

现在,传递给 params 参数的值被隐式转换为 span 类型,据报道,这可确保选择最有效的方法,尤其是当重载方法因 span 或数组使用而不同时。

C# 13 还增强了对接口的参数支持。当将接口指定为参数类型时,它表示需要任何实现类型。编译器可以选择满足接口的最佳可用类型,可能使用现有类型或根据需要创建一个类型。

如上所述,这种设计可确保对底层具体集合类型的依赖最小化,从而实现灵活性和优化。当传递值列表或集合表达式时,编译器能够选择最佳具体类型,从而进一步提高代码的效率和适应性。

未来新增功能的公告与扩展类型有关,在 C# 13 中,扩展类型将通过向基础类型提供额外的方法、属性和成员来扩展。这些扩展类型可以是隐式的,适用于基础类型的所有实例,也可以是显式的,仅适用于显式转换为扩展类型的实例。

原始公告博客文章收到了一些关于 C# 语言改进和建议的有趣想法,并且基于不同的主题和论坛,整体社区反馈是积极的,并附有关于扩展类型的说明和书面兴奋之情,这似乎是社区喜欢的功能。

Microsoft Build 官方网站还公布了题为“ C# 13 中的新功能”的会议录音,强烈建议开发人员观看。其他 C# 新增功能与新锁对象、新转义序列、方法组自然类型和隐式索引访问有关

最后,读者可以在官方语言文档页面上找到有关可用的 C# 13 功能的更多信息。

  • 13
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

谢.锋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值