これから書くことは、実際に経験されている方も多くいると思います。
#Visual Studioの歴史に比べれば、私の使用歴なんてわずかなものです。
仮想プロパティXXXをオーバーライドで違う実装にした上で、base.XXXの部分をデバッグ時に値を確認すると実際に返される値と異なります。(this.XXXが呼び出されるからです。)
変数に代入して確認した場合や、get { return base.XXX; }としたプロパティを除いた場合はもちろん正しい値が表示されます。
#派生クラスのオーバーライドメソッド/オーバーライドプロパティが常に呼び出される(派生クラスインスタンスが既定クラスにあるオーバーライド前のメソッド/プロパティを利用するにはその中で行うしかない).NETだからできるやり方です。