如何修复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
相关产品推荐
相关产品推荐

