你如何回忆一个布尔函数来返回VB.NET中的另一个值?
所以第一次绕过它的真实,但随后会发生一个应该使它变为假的事件,但是这个函数不会重复以表示这一点。
我已尝试按名称调用该函数,我希望它重复,但这不起作用。
根据要求,这是一个小例子:
Private Sub btn1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn1.Click
Dim 1 As String = comboboxSelectGroup.SelectedItem
'What I've tried:
Call CallByName(Me, AlreadyInListbox(), vbMethod, e)
If AlreadyInListbox() = True Then
MsgBox("Its already in there")
End If
If AlreadyInListbox() = False Then
ListBox1.Items.Add(comboboxSelectGroup.SelectedItem)
End If
End Sub
Function AlreadyInListbox() As Boolean
For Each item In ListBox1.Items
If item.Contains(comboboxSelectGroup.SelectedItem) Then
Return True
Else
Return False
End If
Next
End Function
因此,每次单击该按钮时,我希望该函数重复For循环,以便在适当时生成另一个值。
答案 0 :(得分:1)
首先,AlreadyInListbox
可以简化:
Function AlreadyInListbox() As Boolean
Return ListBox1.Items.Contains(comboboxSelectGroup.SelectedItem)
End Function
没有必要循环每个项目,因为项目集合可以回答问题。鉴于其新的简单性,它不需要存在。
Private Sub btn1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btn1.Click
' WHAT???? this cant compile. so this isnt real code
'Dim 1 As String = comboboxSelectGroup.SelectedItem
' tell us why this wont work. is there an error?
If AlreadyInListbox() Then
MsgBox("Its already in there")
ELse
ListBox1.Items.Add(comboboxSelectGroup.SelectedItem)
End If
End Sub
但是,鉴于新的简单性,这将起作用:
If ListBox1.Items.Contains(comboboxSelectGroup.SelectedItem) Then
MsgBox("Its already in there")
Else
ListBox1.Items.Add(comboboxSelectGroup.SelectedItem)
End If
我不知道“重复”一个函数是什么意思,只要它们在scope
中,它们就是无限可重用的。