C#8.0 可空引用类型

本文详细介绍了C#8.0的可空引用类型特性,旨在帮助开发者减少System.NullReferenceException异常。文章涵盖如何启用可空引用类型支持、变量标注、使用示例、进阶特性和缺陷分析,特别强调了[AllowNull]、[DisallowNull]、[NotNull]和[NotNullIfNotNull]等特性的作用,并指出在Struct和数组中可能存在的问题。最后,作者分享了他们正在构建的新框架,以原生支持Dapr并具有高单元测试覆盖率。

介绍

我们的项目代码运行时最频繁的错误之一就是 System.NullReferenceException 异常,c#8.0增加的可为空引用类型就是用来帮助开发者降低甚至消除NULL异常。我们需要注意的是可空引用类型是语法级别的功能,也就是代码编写的时候就会受到编程约束,这个与可为空值类型是不一样的。项目支持c#8.0请参见C# 语言版本控制

目录

在项目中启用可空引用类型支持

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
    <Nullable>enable</Nullable>
  </PropertyGroup>
    
</Project>

在项目文件中增加<Nullable>enable</Nullable>后,项目代码中的引用类型将被解析拆分为不可空引用类型可空引用类型

将警告提升为异常

可空引用类型功能是以警告的形式出现,并不会干扰项目生成编译,约束力较弱。如果想严格要求自身,那我们可将特定的警告变为异常来提升约束力。

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
    <Nullable>enable</Nullable>   				           
    <WarningsAsErrors>
    	$(Warnin
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值