D言語 Part11
■ このスレッドは過去ログ倉庫に格納されています
0084デフォルトの名無しさん
2006/12/23(土) 05:32:23>>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; // プロパティが必要ないメンバも当然あるでしょう
}
とか。キーワード増やしすぎだけど。
プロパティが呼び出し側の書式の問題に過ぎないってのは、
いずれリファクタリングブラウザなんかが出てきた時とかにも困る気がする。
■ このスレッドは過去ログ倉庫に格納されています