龙空技术网

C#编程中如何禁用空值检查

信息美学 267

前言:

今天我们对“排除空值 null”都比较讲究,你们都需要剖析一些“排除空值 null”的相关文章。那么小编也在网上网罗了一些关于“排除空值 null””的相关内容,希望小伙伴们能喜欢,姐妹们一起来学习一下吧!

C#编程中如何禁用Null空值检查?

在C# 9.0(2020年之前),像字符串这样的引用类型可以存储一个空值,而且没有明确的方法来表明空值是否是一个预期的选项。也就是说,你看到一个类型为字符串的变量,你不能简单地知道在使用和/或为该变量赋值时是否应该进行空值检查。

C# 9.0 引入了一个概念,即能够指出null是否是任何特定用法的预期有效选项。例如,在C# 9.0中,你可以在项目中配置表明以下变量可能为空。

string? text = MaybeRealStringMaybeNull();

同时,这里就变成了,"Null在这里不应该是一个合法的值"。

string text = DefinitelyARealString();

在第一种情况下,你应该在使用该变量的内容之前做一个null值检查。 在第二种情况下,你应该在给它分配任何可能是null的值时做一个null值检查。

通过启用这个功能,编译器将帮助你在正确的时间检查空值,这可以使你避免各种空引用异常,否则会使你的程序崩溃。

这个功能在C# 9.0 中默认是关闭的,但是可以设置启用。

在C# 10和Visual Studio 2022中,新项目在创建时都会打开这个功能。我强烈建议将其打开。这是一个伟大的功能,也是一个巨大的省时器,让你在输入代码时就能注意到空引用的错误,而不是在几个月后,当它在生产中与真正的用户一起运行时。

不过,你可能有时候也会想把它关掉,也可以设置这个功能为禁用: 路径:项目-》属性-》生成-》常规-》可为Null的类型

在Visual Studio中,在解决方案资源管理器中右键单击你的项目,然后转到属性。这将打开项目的属性,所以你可以编辑它们。在Build > General下,向下滚动找到“可为Null的类型”,将其从“启用”改为“禁用”,编译器将不再给你警告,可以让你回到C# 9.0 之前的状态。

如果您不使用 Visual Studio,也可以找项目文件,使用在文本编辑器中打开 .csproj 文件: 例如:

<Project Sdk="Microsoft.NET.Sdk">  <PropertyGroup>    <OutputType>Exe</OutputType>    <TargetFramework>net6.0</TargetFramework>    <ImplicitUsings>enable</ImplicitUsings>    <Nullable>enable</Nullable>  </PropertyGroup></Project>

找到包含的XML中的enable,并将其更改为disable 或完全删除它,您将获得相同的效果。 例如:

标签: #排除空值 null