Joh*_*Zaj 2 c# string conditional
在我试图解析一些C#时,我恐怕我不理解这段代码的目标或逻辑:
if (!string.IsNullOrEmpty(str2) && (Strings.UCase(Strings.Left(str2, 1)) != Strings.Left(str2, 1)))
{
return false;
}
Run Code Online (Sandbox Code Playgroud)
我理解第一部分是检查str2是否"非空",但是第二部分有点不稳定.所以我们将str2的第一个字符用于UCase,如果它不等于str2的第一个字符(不是"UCase"d),那么返回"false"?
也许我没有遗漏任何东西,我上面描述的实际上是代码正在做什么.如果是这种情况,我们可以将其改为提供相同结果的其他内容,例如,检查str2是否为大写?我觉得这是最终目标.
你的想法?
是的,您理解正确的代码.
它看起来像是使用翻译工具从VB翻译的东西,因为它使用的是VisualBasic命名空间中的函数.我宁愿用String方法写它:
if (!String.IsNullOrEmpty(str2) && str2.Substring(0,1).ToUpper() != str2.SubString(0,1)) {
return false;
}
Run Code Online (Sandbox Code Playgroud)
或者只是将第一个字符作为字符而不是字符串,并使用类的IsLower方法Char:
if (!string.IsNullOrEmpty(str2) && Char.IsLower(str2[0])) {
return false;
}
Run Code Online (Sandbox Code Playgroud)