有没有一种方法可以制作可被字符串调用的方法?

时间:2019-07-25 14:38:52

标签: vb.net

我需要确定String中是否包含特定的Substring,然后根据Boolean是否存在返回一个Substring值。我可以创建一个独立的函数来检查所传递的字符串中是否存在所传递的年份,例如:

说pstrCompNum =“ 111-2233-44-555”,而pstrCompYear =“ 33”。这将返回True,因此,我知道该字符串中存在33。

Public Function HasYear(ByVal pstrCompNum As String, ByVal pstrCompYear As String) As Boolean
    Try
        Dim testString As String = pstrCompNum
        Dim testSubstring As String = testString.Substring(6, 2)
        If pstrCompYear.Equals(testSubstring) Then
            Return True
        End If
        Return False
    Catch ex As Exception
        Throw ex
    End Try
End Function

但是我真正想要的是能够使用String调用此方法,例如,我可能会这样使用它:

If pstrCompNum.HasYear(pstrCompYear) Then
    ''something
End If

这是因为我打算将其放入一个循环中,在该循环中,我检查每次迭代以查看String是否包含年份。与此类似:

Dim itHasIt As Boolean
For Each c In Name
    If c.HasYear(year) Then
        itHasIt = True
    End If
Next

或者类似的东西。我只是从头顶上整理出来,以帮助您理解。

对这项工作有什么建议吗?

1 个答案:

答案 0 :(得分:1)

是的,这些被称为extension methods

Imports System.Runtime.CompilerServices

Public Module StringExtensionMethods

    <Extension()>
    Public Function HasYear(ByVal pstrCompNum As String, ByVal pstrCompYear As String) As Boolean

        Dim testString As String = pstrCompNum
        Dim testSubstring As String = testString.Substring(6, 2)

        If pstrCompYear.Equals(testSubstring) Then
            Return True
        End If

        Return False
    End Function

End Module