我正在调用一个接受Expression<Func<bool>>
的方法。
我正在传递作为表达式的一部分:
this.Bottom == base.lineView.Top
编译器报错:
表达式树不能包含基本访问
于是我简单地将它更改为
this.Bottom == this.lineView.Top
因为该成员已被保护,所以现在它可以正常工作。
但这个错误真的让我困扰:为什么这个 base
会有问题?特别是如果使用 this
代替将会起作用,但语法上结果是相同的(访问相同的变量)?
base
关键字。也就是说,只有当this
类型中继承的成员被新成员(使用相同名称)覆盖或隐藏时,我才使用它。也许正因为这个原因,在表达式树中我从未遇到过base
的问题。 - Jeppe Stig Nielsen