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后面加上!
标签:8.0,Name,C#,编译器,null,赋值 From: https://www.cnblogs.com/charles-jiang/p/16660968.html