.NET 6新特性试用 | 可空引用类型
Posted dotNET跨平台
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.NET 6新特性试用 | 可空引用类型相关的知识,希望对你有一定的参考价值。
前言
在查看《隐式using指令》功能时,我们在csproj中发现这样一个属性:
那么,Nullable
到底是干嘛的?
可为空上下文
严格来说,这不是新特性,而是C# 8.0引入的特性之一。该特性用于指示引用类型是否接受null值:
只是在.NET 6以前,该特性默认是禁用的,你可以在VS2019中手工启用:
当启用该特性时,对于不接受null值的引用类型有可能收到null时,将出现警告消息。
Demo
假设有下列方法,接受一个字符串类型(引用类型)的参数:
static void test(string str)
...
如果在运行时对其传入null值,则会引发System.NullReferenceException
异常:
而现在,在代码编辑器中,你将看到黄色波浪线,告诉你使用了不允许的空引用类型:
如果变量可以允许有一null值,那么只需添加一个"?":
static void test(string? str)
Console.WriteLine(str?.Length);
此外,你还可使用指令在源代码的任何位置设置,明确当前文件是否使用可为空上下文:
#nullable enable
:将可为空注释上下文和可为空警告上下文设置为“已启用”。#nullable disable
:将可为空注释上下文和可为空警告上下文设置为“已禁用”。#nullable restore
:将可为空注释上下文和可为空警告上下文还原到项目设置。#nullable disable warnings
:将可为空警告上下文设置为“已禁用”。#nullable enable warnings
:将可为空警告上下文设置为“已启用”。#nullable restore warnings
:将可为空警告上下文还原到项目设置。#nullable disable annotations
:将可为空注释上下文设置为“禁用”。#nullable enable annotations
:将可为空注释上下文设置为“启用”。#nullable restore annotations
:将注释警告上下文还原到项目设置。
结论
默认开启Nullable
,好处就是在开发的时候,会不断的验证引用类型实例是否可为null,避免了引发NullReferenceException异常的很多错误。
如果你觉得这篇文章对你有所启发,请关注我的个人公众号”My IO“
以上是关于.NET 6新特性试用 | 可空引用类型的主要内容,如果未能解决你的问题,请参考以下文章
.NET 6新特性试用 | TryGetNonEnumeratedCount