Ich habe ein wenig über Typ Rückschluss gesucht, aber ich kann nicht scheinen, eine der Lösungen auf mein spezielles Problem anzuwenden.Typ Rückschluss auf verschachtelte generische Funktionen
Ich mache eine Menge Arbeit mit dem Bau und Weitergabe von Funktionen. Das scheint mir so zu sein, als müsste es den int-Typ ableiten können. Das einzige, was mir einfällt, ist, dass der Lambda-Rückgabetyp nicht vom Typ-Inferenzalgorithmus überprüft wird. Ich habe unnötige Logik entfernt, um das Problem klarer zu zeigen.
Func<T> Test<T>(Func<Func<T>> func)
{
return func();
}
diese kompiliert:
Func<int> x = Test<int>(() =>
{
int i = 0;
return() => i;
});
aber das gibt die Fehlermeldung „Die Typargumente für die Methode kann nicht von der Verwendung abgeleitet werden versuchen, die Art Argumente Angabe ausdrücklich.“:
Func<int> x = Test(() =>
{
int i = 0;
return() => i;
});
Ich denke, ich möchte einfach nur wissen, warum das so funktioniert und wie es weiter geht.
sehr ähnliche Frage, aber nicht ganz das gleiche http://StackOverflow.com/Questions/6090159/Inferring-Generic-Types-With-Functional-Composition –