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

Sha*_*ami 6 c# c#-8.0 nullable-reference-types

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

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

    public string Value { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

启用可为空引用类型后,编译器给我一个警告:

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

Run Code Online (Sandbox Code Playgroud)

我知道此属性在数据库及其安全中不可为空。

除了禁用类中的警告之外,还有什么方法可以将此属性标记为安全#pragma warning disable

我的第一直觉是试图用!这样的方式将类型标记为安全

public string! Value { get; set; }
Run Code Online (Sandbox Code Playgroud)

但这没有用。

Kar*_*ral 9

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

public class Entity
{
   public int Id { get; set; } = null!;
   public string Value { get; set; } = null!;
}
Run Code Online (Sandbox Code Playgroud)


小智 0

你走在正确的道路上。

公共字符串?值{获取; 放; }