字符串检查返回false

时间:2013-10-10 09:26:26

标签: c# string validation object

以下代码:

protected bool IsStringAndNotNullAndEmpty(object value)
{
    var s = value as string;
    if (s != null)
    {
        return string.IsNullOrEmpty(s);
    }

    return false;
}

以下object是否通过:

"Relatively long option for testing"

这应该很高兴string,但不是第二个return声明。

为什么它可能会这样做?老实说,我很难过。

2 个答案:

答案 0 :(得分:2)

你需要否定IsNullOrEmpty,否则两者都会返回false。

return !string.IsNullOrEmpty(s);

那就是你的方法名为NotNullAndEmpty,但你只需返回IsNullOrEmtpy!

答案 1 :(得分:2)

要符合您的方法名称,您需要:

protected bool IsStringAndNotNullAndEmpty(object value)
{
    var s = value as string;
    return s == string.Empty;
}

将其名称更改为IsEmptyString(对象值)会更清楚。

看起来OP实际上想要一个对非空字符串返回true的方法。所以需要的是:

protected bool IsNonEmptyString(object value)
{
    var s = value as string;
    return !string.IsNullOrEmpty(s);
}

请注意方法名称,让他们说明代码实际上做了什么......