【发布时间】:2010-05-26 14:13:11
【问题描述】:
尝试在 LINQPad 中编译以下代码时:
void Main()
{
DriveInfo.GetDrives().Select(GetProviderName).Dump();
}
static string GetProviderName(DriveInfo drive)
{
// some irrelevant WMI code...
}
我收到以下错误:
无法从用法中推断方法“System.Linq.Enumerable.Select(System.Collections.Generic.IEnumerable, System.Func)”的类型参数。尝试明确指定类型参数。
如果我使用像 d => GetProviderName(d) 这样的 lambda 而不是方法组,它可以正常工作...我很惊讶,因为我确信编译器能够从方法组中推断出类型。范围内没有其他GetProviderName方法,输入输出类型定义明确,所以应该可以隐式转换为Func<DriveInfo, string>...不应该吗?
【问题讨论】:
标签: c# linq type-inference