我需要更深入地了解Func类型表达式。
public class TheResult : IResultEntry {
...
}
在上面的课程中,为什么第二种方法需要强制?
我当然可以阅读错误信息,但很难理解。
// Success
public Task<IResultEntry> ProcessAsync_1()
{
return Task.Factory.StartNew(() => (IResultEntry) new TheResult());
}
// Fail: Compiler error. Cannot implicitly convert...
public Task<IResultEntry> ProcessAsync_2()
{
return Task.Factory.StartNew(() => new TheResult());
}
如果我们在ReSharper的帮助下将其更改为命名方法,我们可以不进行强制转换。
public Task<IResultEntry> ProcessAsync_2_Changed()
{
return Task.Factory.StartNew(function);
}
private IResultEntry function()
{
return new TheResult();
}