帮助处理字符串的C#条件语句

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是否为大写?我觉得这是最终目标.

你的想法?

Guf*_*ffa 5

是的,您理解正确的代码.

它看起来像是使用翻译工具从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)