VB中的Val(input.Text)和input.Text有什么区别?

时间:2013-12-27 16:08:42

标签: vb.net

我有以下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之间有什么区别?

谢谢!

2 个答案:

答案 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将字符串转换为数字。这就是它无法工作的原因。