理解一段代码

时间:2012-11-08 15:53:55

标签: vb.net vb6

我做C#,没有使用VB的经验,我没有安装任何VB。我一直在看下面的代码,了解它是如何工作的,有人可以看看这个吗?

因此,如果我使用Catcat调用此方法并且未传递可选参数,它是否返回true并说Catcat相等?

Public Function AreStringsEqual(ByRef sString1 As String, ByRef sString2 As String, Optional ByVal eCompareMethod As VbCompareMethod = vbBinaryCompare) As Boolean

  If LenB(sString1) = LenB(sString2) Then
    If LenB(sString1) = 0 Then
      AreStringsEqual = True
    ElseIf eCompareMethod = vbBinaryCompare Then
      AreStringsEqual = (InStrB(1, sString1, sString2, eCompareMethod) <> 0)
    Else
      AreStringsEqual = (StrComp(sString1, sString2, eCompareMethod) = 0)
    End If
  End If
End Function

1 个答案:

答案 0 :(得分:12)

这是一些奇怪的代码。无论如何,第三个参数的默认值为vbBinaryCompare,这意味着"Cat""cat"将比较不等。要让它们相等,您需要通过vbTextCompare

现在这就是为什么代码很奇怪:它完全是多余的。您可以直接致电StrComp