这是我的代码..
object o = DBExecuteScalar(myQuery);
if ((int.parse(o.ToString())) <= 2 || (o is null))
{
// my task....
}
在此代码中,'o is null' 部分给出错误。任何帮助如何在单个 if 语句中处理这两个条件。我想要的是 o 的值应该是 (null,0,1,2)。有什么帮助吗??
这是我的代码..
object o = DBExecuteScalar(myQuery);
if ((int.parse(o.ToString())) <= 2 || (o is null))
{
// my task....
}
在此代码中,'o is null' 部分给出错误。任何帮助如何在单个 if 语句中处理这两个条件。我想要的是 o 的值应该是 (null,0,1,2)。有什么帮助吗??
与 || 首先评估运算符的第一个条件 - 您想首先检查是否为空。也不需要 int.Parse 。正如 RGraham 提到的那样, null 不是检查 null 的正确方法。
if (o == null || o == DBNull.Value || (int)o <= 2)
当您反转 if 中的条件时,它应该可以工作。
在您的情况下,首先在对象 o 上调用 ToString。但是因为 o 是 null 这将导致异常。当您颠倒条件的顺序时,nullcheck 将是第一个。or (||) 的第二部分仅在第一部分为假时计算。这将防止发生异常
在 C# 中,is
运算符检查类型是否相等。您需要检查 null 为o == null
:
object o = DBExecuteScalar(myQuery);
if ((o == null) || (int.parse(o.ToString())) <= 2)
{
// my task....
}
在尝试对其执行任何操作之前,您还需要检查 null