我做C#,没有使用VB的经验,我没有安装任何VB。我一直在看下面的代码,了解它是如何工作的,有人可以看看这个吗?
因此,如果我使用Cat
和cat
调用此方法并且未传递可选参数,它是否返回true并说Cat
和cat
相等?
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
答案 0 :(得分:12)
这是一些奇怪的代码。无论如何,第三个参数的默认值为vbBinaryCompare
,这意味着"Cat"
和"cat"
将比较不等。要让它们相等,您需要通过vbTextCompare
。
现在这就是为什么代码很奇怪:它完全是多余的。您可以直接致电StrComp
。