检查Parameter是否为Null
本文关键字:Null 是否 Parameter 检查 | 更新日期: 2023-09-27 18:03:12
我试图创建一个方法来确定我的id parameter
是否为空。如果parameter
为null,那么它应该返回true。如果id parameter
有一个值,那么它应该返回false。
这看起来相当直接,但是我似乎不能使它工作。
Resharper有2个备注:
- 表达式总是false
- 多余的条件三元表达式使用。
我的方法:
public bool IsPersonIdNull(int id)
{
return id == null ? true : false;
}
这是因为只有引用类型可以使用null
。int
是一个值类型。默认是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);
}