質問: this.lineView.Top ``` とにかくメンバーは保護されていて、今は機能しているからです。 しかし、このエラーは実際に私を得た:一体これなぜ`base`問題になりますか?特にこれを使用すると`this`代わりに動作しますが、構文的には同じ結果になります(同じ変数がアクセスされます)?
回答: `System.Linq.Expressions.Expression`ドキュメントを見ると、「基本メンバーアクセス」を表す式の型はないと思います。お使いの場合には、それだけで同じ意味にもかかわらず、ということを忘れてはいけない`this`他のケースでは、それはないだろう、: ``` class Test { void Foo() { Expression> baseString = () => base.ToString(); } public override string ToString() { return "overridden value"; } } ``` ここでは、 `Object.ToString()`に対する非仮想的な呼び出しを`Object.ToString()` `this`ためです)。私はそれが式ツリーでどのように表現されるのか、したがってエラーを見ることができません。 今では、式ツリー内の非仮想ベース部材呼び出しの表現がない*理由*の明白な疑問へとつながる-私はあなたが構築*できれ*ば、ことがわかりますが、私は...私はその部分を答えることができない怖いですその式をプログラム的に使用すると、通常の多型*を*クラス自体の内部からではなく*、外部から*バイパスすることができます(通常のケースです)。それが理由かもしれません。確かに、メソッドを非仮想的に呼び出す方法は他にもありますが、それは別の問題です。表現木が「信頼できる」が他のコードはそうではない状況があると敢えて言います。