Expression.IfThenElse 错误 (C#)
Posted
技术标签:
【中文标题】Expression.IfThenElse 错误 (C#)【英文标题】:Expression.IfThenElse error (C#) 【发布时间】:2013-03-28 15:04:32 【问题描述】:我有这样的错误:
错误 1 'System.Linq.Expressions.Expression' 不包含 'IfThenElse' 的定义
如何省略?
这是代码(C# 的 AluminiumLua 库):
public virtual void IfThenElse()
var Else = Expression.Call(stack.Pop(), LuaObject_AsFunction);
var Then = Expression.Call(stack.Pop(), LuaObject_AsFunction);
var Cond = Expression.Call(stack.Pop(), LuaObject_AsBool);
stack.Push(Expression.IfThenElse(
Cond,
Expression.Call(Then, LuaFunction_Invoke, Expression.NewArrayInit(typeof(LuaObject), new Expression[] )),
Expression.Call(Else, LuaFunction_Invoke, Expression.NewArrayInit(typeof(LuaObject), new Expression[] ))
));
【问题讨论】:
我怀疑你能在不发布违规代码的情况下获得任何帮助。 您必须包含导致错误的代码。 您使用的是 .NET 4 (~ Visual Studio 2010) 吗? VS 2012 Express for Windows Phone 8.0。项目 C# + XNA 4.0 【参考方案1】:Expression.IfThenElse
是在 .NET Framework 4 中引入的,晚于Expression
库(即 3.5)。因此,如果您正在使用一些需要 4.0 的 Expression
代码,并且您使用的是 3.5,则可能大部分会编译,但 IfThenElse
不会编译。
我注意到the most recent commit to AluminiumLua 有它的评论
现在我们需要 .NET 4.0
因此,如果您使用的是最新代码,则需要遵循此说明。
恐怕我不太了解 WP8 和/或 XNA 中哪些框架部分可用或不可用,但希望这会提供一些有用的线索。
【讨论】:
现在可以了,我已经将 'IfThenElse' 更改为 'Condition',它可以编译。【参考方案2】:我认为你犯了一个错误。我认为是IfElse
【讨论】:
正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。 这没有提供问题的答案。一旦你有足够的reputation,你就可以comment on any post;相反,provide answers that don't require clarification from the asker。 - From Review以上是关于Expression.IfThenElse 错误 (C#)的主要内容,如果未能解决你的问题,请参考以下文章
Pig 安装错误:错误 pig.Main:错误 2998:未处理的内部错误