空引用异常是最常见的程序错误之一。微软昨天发布的VS2019对此有了非常贴心的改进,我们来看看吧!
定义程序员、女朋友两个class
public class Girlfriend
{
public string Name { get; set; }
}
public class Programmer
{
public string WorkType => "996";
public Girlfriend Girlfriend { get; set; }
}
由于程序员是找不到女朋友的,因此直接输出女朋友的名字会引发空引用异常:
static void Main(string[] args)
{
var programmer = new Programmer();
Console.WriteLine(programmer.Girlfriend.Name);
Console.ReadKey();
}
然后拿VSCode或者以前版本的Visual Studio跑,你是不知道具体哪个属性null了
但是VS 2019可以显示具体是哪个属性为空。
要注意的是,这个功能并不是.NET Framework或者.NET Core的,因此脱离了VS2019就看不到这个精准空引用的异常信息了。
在公司的大型项目里,空引用异常通常很难排查,当一个class有几十个属性,又嵌套了别的class的时候,报一个空引用异常,究竟是哪个属性为null,我们曾经要花很长时间debug,现在有了VS2019,可以一眼就能知道空引用的位置,节约了程序员宝贵的时间,进一步远离996!