Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
Byrefの引数の値の変更について
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=113#CommentId778
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
魔界の仮面弁士
 (社会人)
投稿日時
2008/11/14 07:13:07
グローバルな物が一概に駄目というわけではありません。
設定情報としては、「My.Settings.~」がよく用いられますが、
これもある意味では、アプリケーション全体にグローバルと言えますし。
> 共通の設定(変数)をひとつのクラスにまとめて
その共通設定クラスが、どのように管理されているのかが重要かと思います。
たとえば、アプリ内では、常に唯一の設定情報しかないように実装する場合もあれば、
複数の設定を用意しておき、それらを切り替えて使えるようにする場合もあるでしょう。
また、どのクラスがどのタイミングで生成されるのか/各設定値は読取専用になっているのか
それとも書換可能になっているのか…といった点も考慮して設計されると良いでしょう。
> BYREFで引数として設定を渡しています
まずは本当に ByRef でなければならないのかを確認してみてください。
共通設定クラスのメンバ操作を行うだけであれば、ByVal で十分なはずです。
一般論で言えば、ByRef 引数が必要になることは稀だと思います。
.NET Framework の標準クラスを眺めて見ても、ByRef はあまり使われておらず、
引数を書き換える必要がある場合(TryParse など)にのみ利用されている程度です。
> Byrefでの引数である「設定」情報を各クラスから変更しています
「各クラス」というのがどのような物であるのか分かりませんが、個人的には、
共通設定があちこちのクラスから変更されるような設計は、避けておいた方が
良いと思いますよ。管理が煩雑になってしまいますから。
共通設定を、(書き換えるのではなく)利用するだけであるならば、各クラスのメソッドに
引数として逐一渡すのではなく、コンストラクタで最初に渡しておくというのも手です。