# 俺も未だにauto->scopeの変更に頭が付いていかなくて困る。

>>72で"auto/自動的"に決定されるべきなのはメンバ変数の方じゃないか?
インターフェースであるプロパティの戻り値が、内部実装である_iの型に依存してちゃ、
クラスの利用者が困る。

要は、「プロパティ」と「その実体のメンバ変数」の間で
コードの重複を強要される、ってのが問題なんじゃないだろーか。
>>77だと、intの重複は消えたけど"i"と"i_"がまだ意味的に重複してる。
さらにgetterとsetterの間も同じ重複の問題が。

やっぱC#みたく真面目に「プロパティ」って論理単位をサポートすべきなんじゃないかなぁ。
んで、実体の変数なんていっそプロパティ内の暗黙変数にしちゃったらどうだろう。

class Point{
 var int x{ // プロパティ宣言。var修飾子により、内部では暗黙の変数varが使える
  get{ return var; }
  set{ var = value; }
 }
 var int y{ get; set; } // 余計な事しないならこれだけでもいいかも

 real distance{ // var修飾子がないので、コンパイラはvar変数を生成しない
  get{ return sqrt(x * x + y * y); }
 }
 private SomeObject inner; // プロパティが必要ないメンバも当然あるでしょう
}

とか。キーワード増やしすぎだけど。

プロパティが呼び出し側の書式の問題に過ぎないってのは、
いずれリファクタリングブラウザなんかが出てきた時とかにも困る気がする。