#注)この質問は下記のリンク先の質問の続きとなります。
#未読の方はリンク先をお読みくださいませ。
#
#自作したメソッド・・・引数はなるべく省略すべき?(VB2005)
#http://oshiete1.goo.ne.jp/qa3409289.html
仮に、フォームにボタンが複数個あり(Name = btnA,btnB,btnC…)、いずれかのボタンをクリックすると、共通処理のモジュール「shori」を呼び出すプログラムを想定します。
コード
------------------------------------------------
Private Sub btnA_Click()
Dim hoge As integer = Phoge 'a)プロパティの値を設定
Dim foo As integer = Pfoo 'b)
Dim bar As integer = Pbar 'c)
Call syori(hoge,foo,bar)
End Sub
Private Sub btnB_Click()
Dim hoge As integer = Phoge 'a)プロパティの値を設定
Dim foo As integer = Pfoo 'b)
Dim bar As integer = Pbar 'c)
Call syori(hoge,foo,bar)
End Sub
:
:
Private Sub shori() 'ボタンクリックイベントの共通処理
'd) 処理
End Sub
------------------------------------------------
引数を省略しない形だと、(a)~(c)のコードを、全てのボタンのClickイベントに書き込むことになり、コードが煩雑になります。こういった場合、引数を省略する形、つまり(a)~(c)のコードを(d)の箇所へ書き込む手法は積極的に行うべきでしょうか?(Call文の形は、syori() となる)
ご助言よろしくお願い致します。
No.1ベストアンサー
- 回答日時:
全てのボタンでhoge、foo、barが同一の設定であるならば、省略するべきです。
その場合の最良の対応は、VBではできなかったかもしれませんが、コールバックのメソッドを統一することでしょう。
ですが、将来的にでも同一設定ではなくなる可能性があるならば、引数として渡すべきでしょう。
個人的には、メソッドの用途が限定的であるならば、あえて汎用性を持たせる必要はないと思っています。
必要のない、将来使用するアテもない機能を持たせると、後々メンテしにくくなることもあります。
モジュール化において汎用性は重要ですが、メソッドの機能は想定される必要充分なものに限定するべきだと思います。(逆に言えば、汎用性を持たせる必要がある場合は、大量の引数も辞さずということです)
sgwjnさん
詳細な解説ありがとうございます。
やはり省略すべきですか。
大変参考になりました。
ご回答ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【お題】絵本のタイトル
- ・【大喜利】世界最古のコンビニについて知ってる事を教えてください【投稿~10/10(木)】
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでセルの書式を変えずに文字...
-
【ExcelVBA】5万行以上のデー...
-
【VBA】 結合セルに複数画像と...
-
VBA 別ブックからコピペしたい...
-
[Excel VBA]特定の条件で文字を...
-
エクセルのマクロについて教え...
-
【ExcelVBA】インデックスが有...
-
Excel 範囲指定スクショについ...
-
VBA 別ブックから条件に合うも...
-
配列のペースト出力結果の書式...
-
【VBA】スペースが入っていない...
-
VBA 入力箇所指定方法
-
エクセルのマクロについて教え...
-
【VBA】値を変更しながら連続で...
-
エクセル タブの下のメニューを...
-
Web画面の文字をVB6で取得したい
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
EXCEL vbaでシート上に配置した...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ブロック1 Ruby認定試験対策問題
-
インスタンス変数の値の保持に...
-
Ruby バブルソート
-
ダック・タイピングのメリット
-
railsでアプリケーションコント...
-
リダイレクトでPOSTリクエスト...
-
CloseとQuitについて
-
timesの使いどころ
-
railsチュートリアル5章の演習
-
「arg」は何の略?
-
What class are you in? には何...
-
教えてください。vb5.0
-
Csvファイルの最終行を取得する...
-
get() と find() の違いについて
-
エラー「メソッドまたはデータ...
-
class roomとclassroom どちら...
-
関数の引数に複数のユーザ定義...
-
実行時エラー450:引数の数が一...
-
クラス名やモジュール名の競合...
-
VBA/GetTickCountの49.7日の境...
おすすめ情報