你如何回忆一个返回另一个值的函数?

时间:2013-12-01 18:22:10

标签: vb.net function boolean

你如何回忆一个布尔函数来返回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循环,以便在适当时生成另一个值。

1 个答案:

答案 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中,它们就是无限可重用的。