我有以下Visual Basic代码:
Private Sub btnOK_Click()
Dim Name1, Name2 As String
Dim Control As String
Name1 = txtName1.Text
Name2 = txtName2.Text
If Name1 = "Zoe" And Name2 = "Zoe" Then
txtControl.Text = "the names are the same"
Else
txtControl.Text = "the names are different"
End If
End Sub
问题在于,当你写Name1 = Val(txtName1.Text)
时,程序不起作用,即使它们是平等的,我也会得到“名字不同”,为什么?我做错了什么? Name1 = Val(txtName1.Text)
和Name1 = txtName1.Text
之间有什么区别?
谢谢!
答案 0 :(得分:4)
Val(Here the MSDN reference)是VB.NET中仍然存在的一种功能,用于保持与VB6的某种兼容性。
用于获取包含数字字符的字符串的数值
将Val
函数应用于包含名称的TextBox没有任何意义。
但是,Val函数,如果无法将传递的字符串转换为数字,则返回零,因此您会收到错误消息,指出两个值不同。
并且,如果在尝试将Val(双精度)的结果与字符串进行比较时没有收到错误消息,那么您将Option Strict设置为Off。您应该不惜一切代价避免的配置(至少在新应用程序中)
if Val(Name1) = "Zoe" Then
' it is equal to '
if 0# = "Zoe" Then
这应该是编译错误。
答案 1 :(得分:1)
val
将字符串转换为数字。这就是它无法工作的原因。