Ich versuche, etwas in VB.NET basierend auf einer C# -Lösung zu schreiben, die ich habe. In der C# Lösung rufe ich die Funktion mit:VB.NET Passing-Funktion zu Aktionsparameter
somefunction(s => Console.WriteLine(s)).Wait();
Und die aufgerufene Methode ist:
public static Task somefuntion(Action<string> callback);
in VB.NET habe ich
somefunction(Function(s) Console.WriteLine(s)).Wait()
Public Shared somefunction(ByRef callback As Action(Of string)) As Task
Alle Ideen, was ich falsch mache ? statt Funktion
Ein bisschen off-topic, aber vb.net Lambda-Ausdrücke sicher hässlich ist ... So froh, dass ich zog weg von ihm zu C#. –
'ByRef' ist wahrscheinlich nicht das, was Sie wollen, es sei denn,' somefunction' könnte dem Aufrufer einen eigenen Callback zurückgeben (was hier anscheinend nicht geschieht). 'ByVal' ist wahrscheinlich, was Sie wollen. Die 'ByRef' /' ByVal'-Unterscheidung ist bei Referenztypen etwas verwirrend, wo sie darauf hinweist, ob die als Argument übergebene Hostvariable auf ein anderes Objekt referenziert werden könnte, anstatt ob eine Kopie des Objekts übergeben wird. – Craig