如何检查表达式是否为空(无效)?

时间:2016-03-15 17:13:56

标签: c# linq expression-trees

检查System.Linq.Expressions.Expression实例是否为空的最佳方法是什么?例如,像这样:

Expression expression = Expression.Empty();
...
if (expression.IsEmpty) { ...

只有IsEmpty不存在。

一个想法是测试ToString

的结果
if (expression.ToString() == "default(Void)") { ...

但这似乎不对。

1 个答案:

答案 0 :(得分:3)

根据文档Empty()返回

  

NodeType属性等于Default的DefaultExpression   并将Type属性设置为Void。

所以你应该可以使用:

if(expression.NodeType == ExpressionType.Default && expression.Type == typeof(void))