介绍
我们的项目代码运行时最频繁的错误之一就是 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

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

被折叠的 条评论
为什么被折叠?



