gpt4 book ai didi

vb.net - 使用 Is 运算符比较循环中的字符串

转载 作者:行者123 更新时间:2023-12-02 05:49:57 24 4
gpt4 key购买 nike

Is 运算符在比较两个字符串时工作正常,例如:

Dim str1 As String = "TagnameX"
Dim str2 As String = "TagnameX"

Dim strChk as boolean = str1 Is str2
'strChk returns True

但是当 Substring 提取其中一个字符串时,它返回 false !如下:

Dim str1 As String = "t#1TagnameX"
Dim str1Extract As String = str1.Substring(3, 8)
Dim strArr() = {"Tagname1", "Tagname2", "TagnameX"}

For i = 0 To strArr.Length - 1
If strArr(i) Is str1Extract Then
MsgBox("TagnameX found!")
else
MsgBox("TagnameX was not found!")
End If
Next
'TagnameX was not found!

所以我在某些方面使用它是错误的吗?感谢您的帮助! :)

最佳答案

Is-operator返回两个引用是否相等:即两个变量是否引用内存中的同一位置。

第一个代码片段返回 True 因为对于文字字符串,.NET interns重复,而不是在内存中保留单独的相同副本,因此 str1str2 引用内存中的相同字符串。

第二个代码片段返回 False,因为 .NET 不一定保留中间字符串,例如 Substring 返回的字符串。因此变量 strstrExtract 并不引用同一个字符串。

您应该使用等于运算符=来比较两个字符串的值。

关于vb.net - 使用 Is 运算符比较循环中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60269602/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com