Wenn ich versuche, den folgenden Code in LINQPad zu kompilieren, wird er nicht angezeigt:
void Main()
{
DriveInfo.GetDrives().Select(GetProviderName).Dump();
}
static string GetProviderName(DriveInfo drive)
{
// some irrelevant WMI code...
}
Ich erhalte die folgende Fehlermeldung:
Die Typargumente für die Methode 'System.Linq.Enumerable.Select(System.Collections.Generic.IEnumerable, System.Func)' können nicht aus der Verwendung abgeleitet werden. Versuchen Sie, die Typargumente explizit anzugeben.
Wenn ich ein Lambda verwende wie d => GetProviderName(d)
anstelle einer Methodengruppe, funktioniert es gut... Ich bin ziemlich überrascht, denn ich war mir sicher, dass der Compiler in der Lage sein würde, den Typ aus der Methodengruppe abzuleiten. Es gibt keine andere GetProviderName
Methode im Anwendungsbereich, und die Eingabe- und Ausgabetypen sind klar definiert, so dass sie implizit in eine Func<DriveInfo, string>
... oder etwa nicht?