以下代码:
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
声明。
为什么它可能会这样做?老实说,我很难过。
答案 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);
}
请注意方法名称,让他们说明代码实际上做了什么......