Alles, was ich Out-Schlüsselwort mit meiner Async-Funktion verwenden möchte. Laut MSDN ist es nicht möglich, Async-Modifikatoren für das out-Schlüsselwort nicht zu unterstützen. Gibt es Alternativen im .Net Framework 4.5/4.0?Was ist das Ersetzen von Out-Schlüsselwort für Async-Methoden in .NET 4.5 und 4.0?
5
A
Antwort
6
Sie können die asynchrone Funktion so deklarieren, dass sie stattdessen Tuple
zurückgibt. Damit kann die Funktion immer noch mehrere Werte zurückgeben, ohne den Parameter out
zu verwenden.
public async Task<Tuple<string, int, bool>>SomeFunctionAsync()
{
return new Tuple<string, int, bool>("foo", 0, false);
}
Für Referenz:
UPDATE:
können Sie kürzere Syntax verwenden, wie von @svick in Kommentar vorgeschlagen. Nach Funktion den gleichen Wert zurück, aber mit Tuple.Create
:
public async Task<Tuple<string, int, bool>>SomeFunctionAsync()
{
return Tuple.Create("foo", 0, false);
}
+5
BTW, 'Tuple.Create()' ist oft kürzer als 'new Tuple()', weil Sie damit Typinferenz verwenden können. – svick
dies helfen könnte: http://msdn.microsoft.com/en-us/library/hh156513.aspx –