声明后,将变量分配给textBox

时间:2014-01-23 05:49:25

标签: vb.net

我是VB的新用户,并且想知道为什么下面的代码没有给我我想要的答案:

Dim name, orderNumber, cityStateZip, address As String
name = nameTextBox.text
orderNumber = orderNumberTextBox.Text
cityStateZip = cityStateZipTextBox.Text
address = addressTextBox.Text

if (name = "" OrElse orderNumber = "" OrElse cityStateZip = "" OrElse address = "") Then
    MessageBox.Show("Please enter a Salesperson's name", "Input Error",
                        MessageBoxButtons.OK, MessageBoxIcon.Error)
End If

上面的代码不会显示MessageBox。但是,如果我'变暗'所有变量(Name,OrderNumber等),它将起作用。

我想知道为什么会这样?

2 个答案:

答案 0 :(得分:1)

Dim name, orderNumber, cityStateZip, address As String
name = nameTextBox.text
orderNumber = orderNumberTextBox.Text
cityStateZip = cityStateZipTextBox.Text
address = addressTextBox.Text

不同
Dim name = nameTextBox.text
Dim orderNumber = orderNumberTextBox.Text
Dim cityStateZip = cityStateZipTextBox.Text
Dim address = addressTextBox.Text

后者使用隐式类型,或者编译器从上下文中获取类型。根据分配给它的变量的类型暗示类型。即nameTextBox.text属性是一个字符串,编译器会对此进行计算,并且您将name变量隐式输入为String。您可以在原始代码中明确键入它们。但是,为了便于阅读,您可以使用此方法:

Dim name As String = nameTextBox.text
Dim orderNumber As String = orderNumberTextBox.Text
Dim cityStateZip As String = cityStateZipTextBox.Text
Dim address As String = addressTextBox.Text

总而言之,我无法想到为什么你需要单独调暗它们(如果我理解正确的话),并且所有这些方法应该在你的代码中有效地工作。

答案 1 :(得分:0)

试试这个

Dim name As String
Dim orderNumber As String
Dim cityStateZip As String
Dim address As String

orderNumber = Me.orderNumberTextBox.Text
cityStateZip = Me.cityStateZipTextBox.Text
address = Me.addressTextBox.Text //  "Me" refers to the current form