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)
但这没有用。
请参阅我的类似问题的答案。如果您通过某些业务规则确保不可为空(在我的情况下为验证),那么最好告诉您的类的使用者,通过使用不可为空属性,某些属性将永远不会为空,并使用此构造处理编译器警告。
public class Entity
{
public int Id { get; set; } = null!;
public string Value { get; set; } = null!;
}
Run Code Online (Sandbox Code Playgroud)