C#8的可空引用类型

pmc*_*avy 5 c# c#-8.0 nullable-reference-types

空引用异常是程序失败的主要来源之一.托尼霍尔称这是他十亿美元的错误.所以我特别期待C#8和新的可空参考类型功能.我想我已经很好地掌握了这个功能以及它对我的代码意味着什么.有一个方面,我正在努力让我的头脑,但这将是如何default表现.

目前在C#default(string)中将返回null.但是当C#8出现时,做一些类似的事情string x = default(string);肯定会让编译器直接发出警告.看起来这有点悖论.我也想知道是否default(string?)有可能,甚至会回归什么.我想它必须是null,这只会增加我的困惑.

我不认为有这个功能的预览版本,但我想知道是否有人知道如何处理.

Dav*_*rno 5

这个问题现在可以回答,而不是等待C#8发布.C#现在是"开放式"开发的,所以只需要自己选择SharpLab,选择NullabaleReferenceTypes分支并尝试代码.

它给出了一个warning CS8600: Cannot convert null to non-nullable reference.作为default的引用类型是nullnull不应该被分配到不可为空string.

如果您更喜欢在VS2017中测试预览,那么IDE也可以使用预览插件.