验证 null object

Validate null object

为了验证模型是否为空,我使用了这样的东西:

  if (model is null || !model.Any()) return this;

但在最近的微软会议上,我看到有人使用类似的东西:

    if(model is { })

我尝试使用它,但总是 return 正确(如果 object 是否为空)

所以我的问题是。有没有一种新的方法来检查模型是否为空? 括号 { }

的正确用法是什么

注意:我在谷歌上搜索了那个括号,但没有找到任何东西。此致

您可以使用通用扩展方法来检查您的对象是否为 null。

尝试:

public static bool IsNullOrEmpty<T>(this IEnumerable<T> source) { 
   return source?.Any() != true; 
}

另一种检查 NullOrEmpty 的方法是将 Count() 强制转换为 int?。然后我们可以比较 GetValueOrDefault0:

的结果
if((model?.Count).GetValueOrDefault() == 0) return this;

工作原理:

  • 因为 ?. 运算符将 return null 如果左侧是 null,并且 Count return 是 int(model?.Count)的结果是Nullable<int>
  • 如果model不是null,return方法returns Count的值,否则returns default(int)(即 0)。
  • 这样如果modelnull,条件returns 0