确定表达式是否为常量表达式的最佳方法

时间:2013-07-15 15:46:53

标签: c# expression-trees

如果表达式是ConstantExpression,您更喜欢测试哪一个?来自NodeType属性或演员,为什么?

    public static bool IsConstantExpression(Expression expression)
    {
        return expression.NodeType == ExpressionType.Constant;
        return expression is ConstantExpression;
    }

2 个答案:

答案 0 :(得分:1)

如果expression.NodeType == ExpressionType.Constant为空,则expression会产生异常。我很确定ConstantExpression可以为空,因此该语句仍然有效。

答案 1 :(得分:0)

我认为进行属性访问比让运行时检查对象的类型更好。