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:未处理的内部错误

Informix 错误:发生了语法错误。错误代码:-201

我收到一个错误:“MetaMask - RPC 错误:错误:错误:[ethjs-rpc] rpc 错误与有效负载”

错误精灵错误跟踪器错误

网页打开显示错误500是啥意思

PHP错误处理