- - PR -
shared な変数の参照
投稿者 | 投稿内容 | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2009-01-15 22:52
最初の投稿では、前提として、次のようなものがあると認識しています。
これを元に、少ない手間で見やすく(見分けやすく)、且つ書きやすい(インテリセンスが使える)ようにするにはどうすればいいか、を考えました。 VB2005 ということですから、リファクタリング機能が使えます。定義を変えればリファクタリング機能で参照している全ての変数名を変えることができますから、少ない手間で見やすくできると考えました。また、接頭辞を統一すれば、接頭辞の後に [CTRL]+[J] ?で候補一覧が出ますから、Me. やクラス名. ほどの手軽さではないものの、書きやすいようにできる、と考えました。 ただ、最近になって気づいたのですが、「Me. を消さなければならない」ということを見落としていました。「Me. を消す」という作業が必要なので、上記意見は「少ない手間で」を満たしません。1ページ目にじゃんぬさんが書かれているように、Imports を使うのが一番でしょう。 で、私の意見としては、8ページ目 2009-01-06 22:36 にも書いていますが、当初より、Shared の使い方を間違っているのではないか?です。それだけをストレートに書くべきでした。不要な混乱を招いて申し訳ない。 メソッド内で、「ローカル変数と共有変数を見やすいように区別したい」という状況が理解できません。7ページ目の 2009-01-03 22:40 で、じゃんぬさんが「共有メンバを理解できていない人が 'わざわざ' static | Shared というキーワードはつけると?」と書かれていますが、1ページ目の 2008-12-24 16:12 武史さんの「インスタンスメンバと、静的メンバの区別がつく代わりに、ローカル変数と、静的メンバが同じような色で表示されるより、重要でないかと思います。」より、「わざわざ付けている」と、解釈しています。
このようなコードを書くことが理解できません。特に、「ローカル変数との区別を付けたい」、「インテリセンスが使いたい」というところから、メソッド中に何度も、他のコードと入り交じって使用していると想像されます。これは、設計ミスだと思います。 当初の想像は、次のようなものでした。
これを、次のようにすればいいのではないかと考えました。
これにより、意図しないタイミングで shared_a が変更されるというバグが表面化したとき、shared_a が左辺に現れるところが、探しやすくなるでしょう。 マイグレーションということなので書くのは控えたのですが、設計(あるいはコーディング規約)の見直しが一番ではないかと思います。 | ||||||||||||||||||||
|
投稿日時: 2009-01-17 19:39
静的メンバを更新している例だからよくなかったのですかね?
|