栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

.NET 5 C# 的 [MemberNotNull] 特性起到什么作用?

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

.NET 5 C# 的 [MemberNotNull] 特性起到什么作用?

MemberNotNullAttribute 是 .NET 5 的新增特性,位于System.Diagnostics.CodeAnalysis。该特性用于显式声明,调用此方法后该值不再为 Null。
示例如下,创建一个 csproj,启用 C# 8.0 的空引用类型新特性。


  
    net5.0
    enable
    $(WarningsAsErrors);CS8600;CS8602;CS8603;CS8618;CS8625
  

如下图所示,由于编译器无法保证 _mayNullStr.Length 不会引发空引用异常,所以抛出编译错误 CS8602;


此时可以通过添加 MemberNotNull 特性,显式地告诉编译器方法 PromisStrNotNull() 可以保证 _mayNullStr 不为 Null。


此外他还有一个姊妹 MemberNotNullWhenAttribute

/// 
/// 返回 true 时, 不为 null
/// 
/// 
[MemberNotNullWhen(true, nameof(_mayNullStr))]
private bool StrNotNullWhenReturnTrue()
{
    if (DateTime.Now.DayOfWeek == DayOfWeek.Friday)
    {
        _mayNullStr = "明天不用上班啦!";
        return true;
    }
    _mayNullStr = null;
    return false;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/911324.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号