检查参数是否为空

时间:2015-07-17 20:08:14

标签: c# .net nullable

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

这似乎相当直接,但我似乎无法让它发挥作用。

  

Resharper 有2条评论:

     
      
  1. 表达始终为假
  2.   
  3. 冗余条件三元表达式用法。
  4.   

我的方法:

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

4 个答案:

答案 0 :(得分:1)

那是因为只有引用类型可以通过nullint值类型。因此默认情况下为0

答案 1 :(得分:1)

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

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

你在这里不需要三元运算符,因为id == null的结果已经是布尔值。

答案 2 :(得分:1)

怎么会变成空? int是值类型。您必须使用nullable int作为参数,如下所示:

 public bool IsPersonIdNull(int? id) 
 {
 }

然后,您可以通过HasValue属性检查它是否具有值:

if (id.HasValue) {

}

或者只是使用内联返回:

return id == null;

答案 3 :(得分:0)

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

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