我是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等),它将起作用。
我想知道为什么会这样?
答案 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