Warum kann Folgendes nicht abgeleitet werden: R
:
Während so ziemlich das "selbe", funktioniert:
%Vor%Verwendung:
%Vor%Wie das erste Beispiel 'kompiliert werden muss':
%Vor%- oder -
%Vor% Gedanken: Wie im zweiten Snippet zu sehen ist, wird R
bereits durch den Rückgabetyp des 'Lambda' bestimmt. Warum gilt das nicht auch für das erste? Selbst mit der Verwendung von ec
(was ein anderer Compiler-Hinweis sein sollte), kann nicht abgeleitet werden.
Ich denke, dass das Problem nicht darin besteht, dass der Compiler, wenn er R
für die Funktion CallWithEscapeContinuation
nicht ableitet, nicht einen Typ für das Lambda ableitet:
Wenn Sie hingegen den int
-Hinweis angeben, kann er daraus ableiten, aus welchem Typ das Lambda stammt und aus der Signatur von CallWithEscapeContinuation
.
Wenn Sie nur Action
(im Gegensatz zu Action<R>
) haben, ist das Obige irrelevant, da keine Typparameter die möglichen Signaturen des Lambda beeinflussen.
Tags und Links c# generics type-inference