Delegate With Multiple Method Sample Code Explaination

Public Class Form1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim C As New Calculate
        Label1.Text = C.ShowValue(10, 10, Calculate.Perform.Add)
    End Sub

End Class


Public Class Calculate

    Public Enum Perform
        Add = 0
        Subtract = 1
        Divide = 2
        Square = 3
    End Enum

    Private Delegate Function CalcDel(A As Integer, B As Integer) As Integer

    Dim L As New List(Of CalcDel)

    Public Function ShowValue(A As Integer, B As Integer, Action As Perform) As Integer

        Dim msdAdd As CalcDel = AddressOf Add
        Dim msdSub As CalcDel = AddressOf Subract
        Dim msdDiv As CalcDel = AddressOf Divide

        L.Add(msdAdd)
        L.Add(msdSub)
        L.Add(msdDiv)

        Return L(Action).Invoke(A, B)


        'If not Delegate, WE had write Multiple IF Condition to manage Same.

        'If Action = Perform.Add Then
        '    Return Add(A, B)

        'ElseIf Action = Perform.Subtract Then
        '    Return Subract(A, B)

        'ElseIf Action = Perform.Divide Then
        '    Return Divide(A, B)

        'ElseIf Action = Perform.Square Then
        '    Return Square(A, B)
        'End If

    End Function


    Private Function Add(A As Integer, B As Integer) As Integer
        Return A + B
    End Function


    Private Function Subract(A As Integer, B As Integer) As Integer
        Return A - B
    End Function


    Private Function Divide(A As Integer, B As Integer) As Integer
        Return A / B
    End Function



    Private Function Square(A As Integer, B As Integer) As Integer
        Return A * B
    End Function



End Class

Comments

Popular posts from this blog

Shared / Static Class in vb.net/C#

Xamarin Forms : PopUp Page with RG.Plugins.Popup

Text was truncated or one or more characters had no match in the target code page.". (SQL Server Import and Export Wizard)