在我的程序中,我有一个System.Linq.Expressions.Expression
对象的列表。 此列表可以包含不同类型的特定Expression
。例如BinaryExpression
,ConditionalExpression
等(参见https://msdn.microsoft.com/en-us/library/system.linq.expressions.expression(v=vs.110).aspx)。 当阅读此列表时,我想检查它是哪种类型的Expression
(BinaryExpression
,ConditinalExpression
等)。获取System.Linq.Expressions.Expression对象的类型
如何获取派生Expression
类的名称/类型?
UPDATE
这里措辞列表中的定义:
IEnumerable<Expression<Func<T, object>>> Expressions { get; }
和代码来获取表达式:
foreach (var expression in test.Expressions)
{
var test = expression.GetType().ToString(); //System.Linq.Expressions.Expression`1[System.Func`2[TestObject,System.Object]]
}
你使用过GetType()吗?它会给你任何对象的确切的运行时类型。应该使用表达式以及 –
我试过了。它给了我只有“System.Linq.Expressions.Expression” – Palmi
显示你的代码的一个例子。你也可以使用“is”操作符。 'yourObj是BynaryExpression' - 会给你一个布尔结果 –