为什么这个monad没有编译

时间:2016-10-29 00:03:28

标签: c# visual-studio-2015 .net-4.6

为什么这个monad不能编译?评论行工作正常。添加where U : class会使其编译,但会增加限制。

public static U To<T, U>(this T self, Func<T, U> eval)
    => eval?.Invoke(self) ?? default(U);
    // => eval == null ? default(U) : eval(self);
  

接线员'?'不能应用于'U'类型的操作数

@duplicate

不要认为这是重复的。我合并func,而不是泛型类型,并在coalesc(?)非null条件运算符(??)上得到错误,如在另一个问题中。

0 个答案:

没有答案