该Expression.Constant()无法做的Expression.Quote()有什么作用?
注意:我知道前面的问题“ LINQ的Expression.Quote方法的目的是什么?”,但是如果您继续阅读,将会发现它没有回答我的问题。 我了解所陈述的目的Expression.Quote()是什么。但是,Expression.Constant()可以用于相同目的(除了Expression.Constant()已经用于所有目的之外)。因此,我根本不明白为什么Expression.Quote()需要这样做。 为了证明这一点,我写了一个简单的示例,该示例通常会用到Quote(请参见标有感叹号的行),但是我Constant改用了它,并且效果也很好: string[] array = { "one", "two", "three" }; // This example constructs an expression tree equivalent to the lambda: // str => str.AsQueryable().Any(ch => ch == 'e') Expression<Func<char, bool>> innerLambda = ch => ch == 'e'; var str = Expression.Parameter(typeof(string), "str"); var expr = Expression.Lambda<Func<string, bool>>( …