【发布时间】:2013-01-22 19:10:27
【问题描述】:
在下面的简单sn-p中:
static void Main(string[] args)
{
Expression<Func<string, bool>> equal = s => s == "test";
LambdaExpression lambda = Expression.Lambda(equal.Body, Expression.Parameter(typeof(string), "s"));
lambda.Compile();
}
编译方法失败并返回InvalidOperationException
"从范围''引用的'System.String'类型的变量's', 但它没有定义”。
虽然我发现了其他类似的问题,但我无法理解所提供的答案。
LambdaExpression 的 DebugView 包含以下内容:
.Lambda #Lambda1<System.Func`2[System.String,System.Boolean]>(System.String $s) {
$s == "test"
}
所以我在这个问题的其他示例中看到,参数和用法不匹配,这在此处似乎不是问题。我做错了什么?
【问题讨论】:
-
DebugView 不会告诉您是否有两次使用相同的参数,或者两个不同的参数恰好具有相同的名称。
-
@spajce 这不是同一个问题。
-
这是一个相关的问题先生 :)
标签: c# expression-trees