看新闻很累看技术新闻更累?試试每天上下班路上听新闻,有趣还有料!
在C#的未来特性清单上排在第一位的是。我们第一次报道这个特性是在去年这里我们简要嘚回顾一下:所有的引用变量、参数和字段默认都是非空的。然后和值类型一样,如果你希望它们可以为空你就必须在类型名上加一個问号(?)来显式说明
这会是一项可选特性,目前的想法是对于将升级到C# 8的现有项目,可空引用类型特性是关闭的对于新项目,微软倾向于默认开启这项特性
警告会进一步分成潜在错误和表面警告。例如如果p.MiddleName是一个string?,那么下面这行代码会是一个表面警告:
由于危险只会出现在值解引用的时候所以这种对局部变量的赋值并不是一个真正的问题。因此你可以在遗留代码上禁用这个警告,以减少誤报数量
同样,早于这项特性的库也不会触发警告因为编译器不知道一个指定的参数是否应该视为可空的。
Switch块通常用于简单地返回单個值在这个常见的场景中,其语法比实际完成的工作要复杂得多考虑下下面这个使用模式匹配的例子:
在新的提案中,反复出现的case和return語句可以省掉其结果是下面这种更新、更紧凑的语法: