检查Parameter是否为Null

本文关键字:Null 是否 Parameter 检查 | 更新日期: 2023-09-27 18:03:12

我试图创建一个方法来确定我的id parameter是否为空。如果parameter为null,那么它应该返回true。如果id parameter有一个值,那么它应该返回false。

这看起来相当直接,但是我似乎不能使它工作。

Resharper有2个备注:

  1. 表达式总是false
  2. 多余的条件三元表达式使用。

我的方法:

public bool IsPersonIdNull(int id)
{
    return id == null ? true : false;
}

检查Parameter是否为Null

这是因为只有引用类型可以使用nullint是一个值类型。默认是0

int永远不能为空(但可以为0)。这更有意义:

public bool IsPersonIdNull(int? id)
{
    return id == null;
}

这里不需要三元操作符,因为id == null的结果已经是布尔值了。

怎么可能是空的呢?int是一个值类型。必须使用可空的int作为形参,如下所示:

 public bool IsPersonIdNull(int? id) 
 {
 }

你可以通过HasValue属性检查它是否有一个值:

if (id.HasValue) {
}

或者直接使用内联返回:

return id == null;

您还可以为任何类型创建泛型方法:

public bool IsPersonIdNull<T>(T instance)
{
    return instance == default(T);
}