这是我的密码..。
object o = DBExecuteScalar(myQuery);
if ((int.parse(o.ToString())) <= 2 || (o is null))
{
// my task....
}在这段代码中,'o is null‘部分出现了错误。任何帮助如何处理这两种情况在单一的if语句..。我想要的是o的值应该是(null,0,1,2)。有什么帮助吗?
发布于 2014-05-07 07:50:25
在C#中,is运算符检查类型相等。您需要检查null是否为o == null
object o = DBExecuteScalar(myQuery);
if ((o == null) || (int.parse(o.ToString())) <= 2)
{
// my task....
}在尝试对其执行任何操作之前,还需要检查null。
发布于 2014-05-07 07:47:51
首先,要检查是否为null第一个条件。另外,int.Parse也不是必需的。正如RGraham所提到的,null并不是一种正确的方法,如何检查null。
if (o == null || o == DBNull.Value || (int)o <= 2)发布于 2014-05-07 07:47:53
当你倒转if中的条件时,它应该能工作。
在您的示例中,首先在对象o上调用ToString,但由于o为null,这将导致异常。当您反转条件的顺序时,将首先进行空检查。只有当第一部分为false时,才会对or (分部)的第二部分进行计算。这将防止异常发生。
https://stackoverflow.com/questions/23511791
复制相似问题