我试图创建一个方法来确定我的id parameter
是否为空。如果parameter
为null,则它应该返回true。如果id parameter
有值,则应返回false。
这似乎相当直接,但我似乎无法让它发挥作用。
Resharper 有2条评论:
- 表达始终为假
- 冗余条件三元表达式用法。
醇>
我的方法:
public bool IsPersonIdNull(int id)
{
return id == null ? true : false;
}
答案 0 :(得分:1)
那是因为只有引用类型可以通过null
。 int
是值类型。因此默认情况下为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);
}