我的代码(用于网络核心项目):
var list = await user.RelatedEntityCanBeNull?.ToListAsync();
如果UserE的RelatedEntityCanBeNull为null,则抛出NullReferenceException。为什么表达式不返回null?
答案 0 :(得分:4)
await运算符需要一个等待的Task
对象。 Null条件运算符返回null
和await null
结果为NullReferenceException
。
您必须将代码更改为
List list = null;
if (user?.RelatedEntityCanBeNull != null)
list = await user.RelatedEntityCanBeNull.ToListAsync();
或
var list = user?.RelatedEntityCanBeNull == null ? null : await user.RelatedEntityCanBeNull.ToListAsync();