为什么字符串大小写比较会突然在 vb.net 中停止工作?
Why would string case comparison suddenly stop working in vb.net?
有谁知道以下是怎么可能的?使用 .ToLower
和 Lcase
的所有字符串比较突然停止工作。
如果我立即这样做 window:
?lcase(text)
"menu"
?lcase(text)="menu"
False
这是几分钟前才开始的。我正在使用:
- .NET 4.5.2
- Visual Studio 2013 终极版
- Visual Basic
编辑:
这个问题的根源出自这里:
更改代码后。
首先,我会停止使用 LCase
,因为它是 VB 6 兼容代码。
其次,我不会在字符串比较中使用 "string".ToLower()
或 "string".ToUpper()
中构建的 .NET,因为这可能会导致某些本地人出现意外结果。
更好用text.Equals("menu", StringComparison.OrdinalIgnoreCase)
我不知道您的问题的根本原因是什么,但希望对您有所帮助。
'Declaration
Public Shared Function Compare ( _
strA As String, _
strB As String, _
ignoreCase As Boolean _
) As Integer
结果小于零 = strA 小于 strB。
结果零 = strA 等于 strB。
结果大于零 = strA 大于 strB。
有谁知道以下是怎么可能的?使用 .ToLower
和 Lcase
的所有字符串比较突然停止工作。
如果我立即这样做 window:
?lcase(text)
"menu"
?lcase(text)="menu"
False
这是几分钟前才开始的。我正在使用:
- .NET 4.5.2
- Visual Studio 2013 终极版
- Visual Basic
编辑:
这个问题的根源出自这里:
更改代码后。
首先,我会停止使用 LCase
,因为它是 VB 6 兼容代码。
其次,我不会在字符串比较中使用 "string".ToLower()
或 "string".ToUpper()
中构建的 .NET,因为这可能会导致某些本地人出现意外结果。
更好用text.Equals("menu", StringComparison.OrdinalIgnoreCase)
我不知道您的问题的根本原因是什么,但希望对您有所帮助。
'Declaration
Public Shared Function Compare ( _
strA As String, _
strB As String, _
ignoreCase As Boolean _
) As Integer
结果小于零 = strA 小于 strB。
结果零 = strA 等于 strB。
结果大于零 = strA 大于 strB。