首页 > 编程语言 >C# 8 null!

C# 8 null!

时间:2022-09-06 10:59:38浏览次数:45  
标签:8.0 Name C# 编译器 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后面加上!

标签:8.0,Name,C#,编译器,null,赋值
From: https://www.cnblogs.com/charles-jiang/p/16660968.html

相关文章