极客视点
极客时间编辑部
极客时间编辑部
113232 人已学习
免费领取
课程目录
已完结/共 3766 讲
2020年09月 (90讲)
时长 05:33
2020年08月 (93讲)
2020年07月 (93讲)
时长 05:51
2020年06月 (90讲)
2020年05月 (93讲)
2020年04月 (90讲)
2020年03月 (92讲)
时长 04:14
2020年02月 (87讲)
2020年01月 (91讲)
时长 00:00
2019年12月 (93讲)
2019年11月 (89讲)
2019年10月 (92讲)
2019年09月 (90讲)
时长 00:00
2019年08月 (91讲)
2019年07月 (92讲)
时长 03:45
2019年06月 (90讲)
2019年05月 (99讲)
2019年04月 (114讲)
2019年03月 (122讲)
2019年02月 (102讲)
2019年01月 (104讲)
2018年12月 (98讲)
2018年11月 (105讲)
时长 01:23
2018年10月 (123讲)
时长 02:06
2018年09月 (119讲)
2018年08月 (123讲)
2018年07月 (124讲)
2018年06月 (119讲)
时长 02:11
2018年05月 (124讲)
时长 03:16
2018年04月 (120讲)
2018年03月 (124讲)
2018年02月 (112讲)
2018年01月 (124讲)
时长 02:30
时长 02:34
2017年12月 (124讲)
时长 03:09
2017年11月 (120讲)
2017年10月 (86讲)
时长 03:18
时长 03:31
时长 04:25
极客视点
15
15
1.0x
00:00/03:17
登录|注册

C# 7.3新特性一览

讲述:丁婵大小:1.50M时长:03:17
近日,C# 7.3 版本发布,7.3 虽然是一个相对较小的版本,但是这次更新解决了一些自 C# 1 和 2 以来长期悬而未决的问题。以下是对 C#7.3 新特性的总结。
1. 重载解析
从 C# 1.0 开始,重载解析规则的设计就有问题。在某些情况下,它会选取两个或更多的方法作为候选,这些方法中只有一个会被使用。根据这些错误选出的方法的优先级,编辑器要么会认定没有匹配的方法,要么认定匹配不明确。
C# 7.3 把其中部分检查移到了重载解析期间,而不是重载解析之后,这样,错误的匹配就不会导致编译器错误。
2. 泛型约束:枚举、委托和非托管
自 C# 2.0 引入泛型以来,开发人员就一直在抱怨,无法把一个泛型类型指定为枚举。在 C# 7.3 中,这个问题终于解决了,开发人员现在可以使用 enum 关键字作为泛型约束,同样也可以使用 delegate 关键字作为泛型约束了。
非托管类型约束提案使用了 unmanaged 关键字,用于说明泛型类型必须是“非引用类型,并且在任意嵌套层次上都不包含引用类型字段”。这是为了用在底层交互代码中,当开发者需要“创建可供所有非托管类型重用的例程时”。
3. 隐藏字段的 Attribute
虽然自实现的 Property 非常有用,但是它们有一些局限,Attribute 不适用于后备字段,因为开发者看不到它。虽然通常来说这不是问题,但是在处理序列化时就可能有问题了。
面向自实现 Property 字段的 Attribute 提案用一种简单的方法解决了这个问题。当把一个 Attribute 应用到一个自实现的 Property 时,只需要在字段定义时加上 field: 修饰符就可以了。
4. 栈分配数组
C# 中有一个很少使用但相当重要的特性,就是能够通过 stackalloc 关键字在栈上分配数组。与分配在堆上、会导致 GC 压力的普通数组相比,这可能会提供更好的性能。
然而,使用栈分配数组有一些危险。因为它需要持有一个指向栈的指针,而且只能用于不安全的上下文中。CLR 会启用缓冲区溢出检测来缓解这种情况,这有可能导致“应用程序尽快终止”。
5. 栈分配 Span
栈分配数组的一个安全替代方案是栈分配 Span。消除指针,也就消除了缓冲区溢出的可能性。反过来,这意味着开发者可以使用它而不必把方法标记为不安全的。值得注意的是,Span 依赖于 NuGet 包 System.Memory。
如果你想要了解更多的 C# 7.3 提案,可以在 C# 语言的GitHub站点上查阅。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
免费领取
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
19
沉浸
阅读
分享
手机端
快捷键
回顶部