打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

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

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 或完全删除它,您将获得相同的效果。例如:

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
软评03:C/C++编程软件哪款好?路过大神请指教
Visual Studio 2010的调试(断点设置、变量查看)
如何在命令行编译执行C++源文件 - 已解决 - 搜搜问问
Visual Studio Code 1.56稳定版发布
浅谈溢出问题
Visual Studio使用Github同步项目后引用的dll全部失效
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服