C# 8 null!

null! 是什么意思

C# 8.0 默认所有引用类型不能默认赋值为null,先看这段代码

Console.WriteLine(p.Name.Length)

这段代码在C# 8.0之前是不会有警告的,当Name未赋值时,这段代码会抛出空引用异常。 而在C# 8.0中,这段代码编译器会给出一个可能为空的警告。

解决这个警告只需要再Name后面加!(null-forgiving operator 暂时称为容错运算符吧)

Console.WriteLine(p.Name!.Length)

这样就会告诉编译器,这个变量我不会赋值为null的,编译器你不用管了!

但是如果Name为null 运行时还是会炮空引用异常。

如果想要将引用类型赋值为null,在C# 8.0中就需要在null后面加上!

posted @ 2022-09-06 10:43  BLJCharles  阅读(63)  评论(0编辑  收藏  举报