You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复ASP.NET Razor Pages应用中的‘non-nullable property’警告?

解决ASP.NET Razor Pages中的CS8618非可空属性警告

你的CS8618警告是因为C#的空值检查规则要求非可空引用类型在构造完成时必须持有非空值,而Categories_List属性未在构造函数中初始化,也未标记为可空类型。以下是几种可行的解决方式:

  • 声明时初始化属性
    直接给属性赋予初始空集合,确保从创建时就符合非可空要求:

    public List<Category> Categories_List { get; set; } = new List<Category>();
    
  • 标记属性为可空类型
    若该属性存在为null的场景,可在类型后添加?将其设为可空引用类型:

    public List<Category>? Categories_List { get; set; }
    

    注意后续使用该属性时需做空值判断,避免触发NullReferenceException。

  • 在构造函数中初始化
    在页面模型的构造函数内为属性赋值,适合需要构造时执行额外初始化逻辑的场景:

    public IndexModel()
    {
        Categories_List = new List<Category>();
    }
    
  • 使用[NotNull]特性(需确保后续赋值)
    若能保证在使用属性前一定会完成赋值,但无法在构造函数中初始化,可添加[NotNull]特性(需引入System.Diagnostics.CodeAnalysis命名空间):

    using System.Diagnostics.CodeAnalysis;
    
    [NotNull]
    public List<Category> Categories_List { get; set; }
    

    此方式会告知编译器属性不会为null,但需确保后续确实赋值,否则可能引发运行时错误。

内容的提问来源于stack exchange,提问作者Amila Praneeth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 20:22:13