如何将NonNullable引用属性标记为安全?

时间:2019-02-20 09:30:47

标签: c# c#-8.0 nullablereferencetypes

我有一个在EntityFramework模型中使用的实体。

public class Entity
{
    public int Id { get; set; }

    public string Value { get; set; }
}

启用可为空的引用类型后,编译器会警告我:

Warning CS8618  Non-nullable property 'Value' is uninitialized.

我知道此属性在数据库中是不可为空的,并且它是安全的。

除了使用#pragma warning disable在类中禁用警告以外,是否有其他方法可以将该属性标记为安全?

我的第一个直觉是试图用!将该类型标记为安全

public string! Value { get; set; }

但这没用。

2 个答案:

答案 0 :(得分:1)

请参阅我类似问题的answer。如果您通过某些业务规则确保不可为空(在我的情况下为验证),则最好通过使用non-nullable属性告知类的使用者某些属性永远不会为空,并使用此构造来处理编译器警告

public class Entity
{
   public int Id { get; set; } = null!;
   public string Value { get; set; } = null!;
}

答案 1 :(得分:0)

您以正确的方式。

公共字符串?值{get;组; }