Methoden als Parameter

  • VB.NET
  • .NET (FX) 4.0

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Trade.

    Methoden als Parameter

    Hi

    Man kann ja eine andere Methode in einer zweiten aufrufen:

    VB.NET-Quellcode

    1. Private Sub a()
    2. msgbox("")
    3. End Sub
    4. Private Sub b()
    5. a()
    6. End Sub​


    kann man aber auch auf methoden verweisen wo man nicht weiß welche, vielleicht als Parameter, etwa so:

    VB.NET-Quellcode

    1. Public Sub MethodStarter(Byval m As Method 'Statt As Method weiß ich nicht was da hinkommt)
    2. m()
    3. End Sub
    4. Private Sub SampleMethod()
    5. Msgbox("")
    6. End Sub
    7. Private Sub Button1_Click(...) ...
    8. MethodStarter(SampleMethod())
    9. End Sub


    MFG :)
    Func(Of T, TResult), Action(Of T) bzw. generell halt Delegaten?
    Meinst Du sowas?
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Das verstehe ich nicht, welchen vorteil hätte: "MethodStarter(Methode)" vor "Methode()".

    Mir ich auch keine Möglichkeit bekannt eine Methode als ByVal zu übergeben.
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
    @Schamash Wenn man die aufzurufende Methode halt wählen will. Es gibt da aber sicherlich auch bessere Wege.
    @TE:

    Func(Of T, TResult) erwartet beim ersten Typparameter den Input und beim zweiten (TResult) den Rückgabetyp.
    Hier mal ein Beispiel, sollte klar sein:

    VB.NET-Quellcode

    1. Public Function ParseMyInteger(ByVal func As Func(Of String, Integer)) As Integer
    2. Return func("Test")
    3. End Sub
    4. Public Function Method1(ByVal input As String) As Integer
    5. Return Integer.Parse(input)
    6. End Sub
    7. Public Function Method2(ByVal input As String) As Integer
    8. Return Integer.Parse(input) - 5 ' Zum Beispiel
    9. End Sub
    10. Public Function Test() As Integer
    11. Return ParseMyInteger(Method1)
    12. End Sub
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Ich habe es nochmal editiert, hatte noch nen Fehler drin.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!: