Dictionary(Of String, Action) Action erhalten

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Dictionary(Of String, Action) Action erhalten

    Hallo,

    ist es irgendwie möglich aus einem Dictionary(Of String, Action)

    Per Übergabe eines Strings die Action zu erhalten?

    VB.NET-Quellcode

    1. Dim C As New Dictionary(Of String, Action)
    2. C.Add("01", Sub() Test()))
    3. Private Sub Test()
    4. MessageBox.Show("Hallo")
    5. End Sub



    Dass ich irgendwie in eine Variable habe:

    VB.NET-Quellcode

    1. Dim D As Action = C.GetEntry...("01")




    Versuche ich es mit List(Of T):


    VB.NET-Quellcode

    1. Dim C As New List(Of Tuple(Of String, Action))
    2. C.Add(Tuple.Create("01", Sub() MessageBox.show("Test")))


    Value of type 'System.Tuple(Of String, <anonymous method>)' cannot be converted to 'System.Tuple(Of String, System.Action)'.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Kevin Hombre“ ()

    Tuple.Create()erzeugt in deim Code kein Tuple(Of String, Action), sondern ein Tuple(Of String, <anonymous Method>)
    Aber genau das sagt dir ja auch die Exception.

    Eine anonyme Methode ohne Parameter ist nicht automatisch eine Action, aber kann einem Action-Delegaten zugewiesen werden, bzw tauglich als Argument des Action-Konstruktors.

    VB.NET-Quellcode

    1. Dim C As New List(Of Tuple(Of String, Action))
    2. C.Add(Tuple.Create("01",new Action( Sub() MessageBox.show("Test"))))