如何自动将参数传递给函数?

时间:2015-02-02 13:08:35

标签: vb.net

我想通过此函数传递txt1和txt2以验证两个用户输入框但是我一次只能传递一个参数,这意味着必须生成2个函数?是否有一种方法可以在输入txt1的所有位置的txt1之后自动传递txt2。

Private Function isNumericOnly(ByVal txt1 As String, ByVal txt2 As String) As Boolean

    Dim iLen As Integer
    Dim iCtr As Integer
    Dim sChar As String

    iLen = Len(txt1)
    If iLen > 0 Then
        For iCtr = 1 To iLen
            sChar = Mid(txt1, iCtr, 1)
            If Not sChar Like "[0-9]" Then Return False

        Next

        Return True

    End If


End Function

1 个答案:

答案 0 :(得分:3)

您可以使用一种验证方法:

Public Function DigitsOnly(text As String) As Boolean
    Return text IsNot Nothing AndAlso text.All(AddressOf Char.IsDigit)
End Function

然后将TextBoxes的文本传递给它:

Dim isValid As Boolean = DigitsOnly(txt1.Text) AndAlso DigitsOnly(txt2.Text)

请注意,如果传递空字符串,则该方法返回True。如果您不想使用:

Return Not String.IsNullOrEmpty(text) AndAlso text.All(AddressOf Char.IsDigit)

如果您要验证许多控件(或字符串),则可以使用集合:

Dim allTextBoxes As TextBox() = {txt1, txt2, txt3}
Dim isValid = allTextBoxes.All(Function(txt) DigitsOnly(txt.Text))
相关问题