c# 9 可空引用类型

问题描述 投票:0回答:0

在具有可空引用类型新功能的 c# 9 中,我发现自己放置了“?”在每个类属性类型上关闭警告,然后将 if != null 放在代码外部以避免空引用(这很好)。 但我想知道,垃圾邮件“?”是否正确?到处?

假设我有一个类表示带有非可选外键的数据库记录:

public int UserId { get; set; }
public virtual User User { get; set; }

我希望虚拟属性始终不为空(因为它是由实体框架实例化的)所以我不想让它可以为空以删除类中的警告,而是将它的值初始化为“空!”。然后,如果实体框架无法按预期工作,我应该使用 try catch 块包装使用此属性的代码以捕获异常。

你怎么看?垃圾邮件“?”更安全吗?并且总是重复 if != null 到处?

c# nullreferenceexception c#-9.0
© www.soinside.com 2019 - 2024. All rights reserved.