Übergeben Sie eine Funktion mit Parametern an einen VoidCallback
Ist es möglich, übergeben Sie eine Funktion mit Parametern an einen VoidCallback?
zum Beispiel so etwas wie dieses:
class MyClass {
void doSomething(int i){
}
MyOtherClass myOtherClass = new MyOtherClass(doSomething);
}
class MyOtherClass {
final VoidCallback callback(int);
MyOtherClass(this.callback);
callback(5);
}
- Erweiterte Funktion kann einer sein, der nimmt 2 String und return int
final int Function(String, String) callback
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Erklärung der
VoidCallback
istDass ist der Typ der Funktionen, die aufgerufen werden kann mit null Argumente und die nicht wieder ein brauchbarer Wert. Das scheint nicht das zu sein, was Sie wollen.
Es ist nicht ganz klar, was Sie wollen, da das Programm nicht syntaktisch gültig, aber würde diese Arbeit für Sie:
Hier definieren wir die Art der
callback
Feld, das die Art der Funktionen, die aufgerufen werden kann mit einem integer-argument und liefert keine brauchbaren Wert. DiedoSomething
Methode hat, das geben, damit es zugeordnet werden kanncallback
.Können Sie auch ein typedef-name der Funktion:
Die Wirkung ist genau die gleiche, es ist nur erlaubt Ihnen, verwenden Sie einen kürzeren Namen für die Funktion geben, aber nur wirklich Sinn macht, wenn Sie es verwenden, eine Menge.
erstellen Sie Ihre eigenen callback statt
Flattern bereits ein typedef für diese:
ValueSetter
.Also können Sie übergeben Sie eine Instanz von
ValueSetter<int>
zu Ihren anderen Klasse.ValueSetter<YourTypeHere>
.Beispiel in UI-Fall. Sie müssen möglicherweise erstellen widget und pass auf Funktion.
1.Erstellen widget mit der Funktion als paramiter im Konstruktor.
2. Implementieren Sie das widget in die drei Sicht-und pass-Funktion wie diese