我正在使用新的任务并行库,今天去了这个案例:
此代码无法编译:
internal Task<Guid?> SavePages(string[] pages)
{
return Task.Run(() =>
{
if (pages == null || pages.Length == 0)
return null;
....
除非我明确返回一个可为空的 Guid:
internal Task<Guid?> SavePages(string[] pages)
{
return Task.Run(() =>
{
if (pages == null || pages.Length == 0)
return (Guid?)null;
// Check documents path access
为什么这种行为,我做错了什么?我的意思是,我让代码与第二个选项一起使用,但不知道如果我在滥用库,我的意思是,null 始终为 null,不是吗?
编译错误:
无法将 lambda 表达式转换为委托类型“System.Func”,因为块中的某些返回类型不能隐式转换为委托返回类型