gpt4 book ai didi

c# - 无法确定条件表达式的类型,因为 'lambda expression' 和 'lambda expression' 之间没有隐式转换

转载 作者:太空狗 更新时间:2023-10-29 22:36:35 25 4
gpt4 key购买 nike

我有一个笔记集。根据请求这些注释的 UI,我想排除一些类别。这只是一个例子。如果项目 Notes 弹出窗口请求注释,我应该排除 collection 注释。

Func<Note, bool> excludeCollectionCategory = (ui == UIRequestor.ProjectNotes) 
? x => x.NoteCategory != "Collections"
: x => true; //-- error: cannot convert lambda to lambda

我收到以下错误:无法确定条件表达式的类型,因为“lambda 表达式”和“lambda 表达式”之间没有隐式转换

感谢帮助

最佳答案

编译器不会为 lambda 表达式推断委托(delegate)类型。您需要在第一个三元子句中使用强制转换来指定委托(delegate)类型:

var excludeCollectionCategory = (ui == UIRequestor.ProjectNotes) 
? (Func<Note, bool>)(x => x.NoteCategory != "Collections")
: x => true;

一线希望是您可以使用 var 而不必指定变量的类型,因此它并没有那么冗长。

关于c# - 无法确定条件表达式的类型,因为 'lambda expression' 和 'lambda expression' 之间没有隐式转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33376838/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com