【发布时间】:2014-04-12 00:27:00
【问题描述】:
我正在调用一个接受 Expression<Func<bool>> 的方法。
作为我传递的表达式的一部分:
this.Bottom == base.lineView.Top
编译器给了我一个错误
表达式树可能不包含基访问
所以我简单地把它改成了
this.Bottom == this.lineView.Top
因为无论如何该成员都受到了保护,现在它可以工作了。
但这个错误真的让我感到:为什么这个 base 会是个问题?特别是如果使用this 会起作用,但在语法上是相同的结果(访问相同的变量)?
【问题讨论】:
-
有趣的问题。但是,通常我从不无缘无故地使用
base关键字。也就是说,我仅在this类型中的继承成员被具有相同名称的new成员覆盖或隐藏时才使用它。也许出于这个原因,我从未在表达式树中遇到base的这个问题。
标签: c# .net expression-trees