我想确认字符串不是以 V 和 S 开头。我使用下面的代码来查找,但它总是转到错误部分。
if (!Smc.StartsWith("V") || !Smc.StartsWith("S"))
{
RetStr = "1:Invalid String";
return RetStr;
}
有人可以帮助我吗?
如果您想在字符串以 V 或 S 开头时转到错误部分,您可以这样做..
if ( Smc.StartsWith("V") || Smc.StartsWith("S"))
{
RetStr = "1:Invalid String";
return RetStr;
}
现在,您的
if
状况本质上是:
“如果 Smc 不是以 V 开头,或者如果 Smc 不是以 S 开头”
由于字符串不能同时以 V 和 S 开头,因此至少其中一个陈述始终为真。
您需要删除
not
运算符,如下所示:
if (Smc.StartsWith("V") || Smc.StartsWith("S"))
{
RetStr = "1:Invalid String";
return RetStr;
}
IF 语句:
if (!Smc.StartsWith("V") || !Smc.StartsWith("S"))
被解释为 smc 不以“V”开头 OR smc 不以“S”开头
如果 smc 以 S 开头,那么它不是以 V 开头。所以第一个条件为真。 如果 smc 以 V 开头,则它不以 S 开头,因此第二个条件为真。 如果 smc 以任何其他字符开头,则这两个条件均成立。
因此它总是执行 return 块。