小编Ere*_*rez的帖子

为什么我不能在Tuple.Create中使用lambda表达式?

我知道编译器可以从lambda表达式转换为Predicate.

例如:

Predicate<int> p = x => true;
Run Code Online (Sandbox Code Playgroud)

很好.

但是当我想创建一个包含谓词的元组时.我试着这样做(简化版):

Tuple<Predicate<int>> t;
t = Tuple.Create(x => true);
Run Code Online (Sandbox Code Playgroud)

我收到了编译错误:

无法从用法推断出方法'System.Tuple.Create(T1)'的类型参数.尝试显式指定类型参数.

我的问题是这是一个错误,这里的歧义在哪里?

(我知道我可以通过强制转换修复它:t = Tuple.Create((Predicate<int>)(x => true)); 但是我想理解为什么第一种方式不好,而且我也不想进行转换以节省输入:)

c# lambda delegates tuples predicate

7
推荐指数
1
解决办法
547
查看次数

标签 统计

c# ×1

delegates ×1

lambda ×1

predicate ×1

tuples ×1