【发布时间】:2015-12-03 04:44:08
【问题描述】:
我正在尝试比较 2 个字符串(KeyCode 和 SerialN) 我尝试了很多不同的方法......但正如你在我的打印屏幕中看到的那样,= 或 Equals 都不起作用。
你能告诉我有什么问题吗?
Private Function VerificaKeyCode(SerialN As String) As Boolean
Dim snEsq As Integer
Dim snDir As Integer
Dim KeyCode As String
Dim buffer As String
Dim ind As Short
VerificaKeyCode = False
buffer = Space(255)
For ind = 1 To 5
'UPGRADE_WARNING: App property App.EXEName has a new behavior. Click for more: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="6BA9B8D2-2A32-4B6E-8D36-44949974A5B4"'
GetPrivateProfileString(My.Application.Info.AssemblyName, "HD" & ind, "", buffer, Len(buffer), My.Application.Info.DirectoryPath & "\ServerHD.ini")
KeyCode = Trim(buffer)
If KeyCode <> "" Then
VerificaKeyCode = KeyCode.Equals(SerialN)
VerificaKeyCode = CBool(KeyCode = SerialN)
If VerificaKeyCode Then Exit Function
End If
Next ind
End Function
编辑
显然字符串中有一个空字符,我需要以某种方式将其删除
【问题讨论】:
-
不要使用屏幕截图,请将代码贴出来,好吧,代码在这里
-
我猜你是在错误的执行行。您的变量仍然具有上一条语句分配的值。执行当前行,我们的应该是真的。
-
= 或等于应该提供相同的结果;但是您必须确保两个输入相同(它 = 或等于说它们不相同是因为它们不是)。您的变量可能不相同的原因有多种;例如,您正在修剪其中一个而不是另一个(在第一次比较中,您仅将 ToUpper 应用于其中一个变量)。只要保持一致并确保对所有变量应用相同的修改。例如: .Trim().ToUpper() 到字符串比较中涉及的所有变量听起来不错。
-
当前行不正确...所有这些行都返回错误
-
多次设置结果不会改变任何东西。因此,您使用
VerificaKeyCode = <...>您会根据最新检查继续设置它。对于函数,您应该改用Return。这是一个关于如何返回多个变量检查的示例:Return (KeyCode = teste1 Or teste2 = teste1)
标签: vb.net equals equals-operator