为什么这个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条件运算符(??)上得到错误,如在另一个问题中。