私は、の古いデータベースシステムに接続するサードパーティライブラリを使用しています。 「ストアドプロシージャ」を呼び出すメソッド(CallProg
)があります(より良い翻訳の欠如のために、群衆のどのピックユーザも?)。しかし、代わりにこのような何かを行うの:オーバーロードされた2つのサブシステムを1つに結合する
Public Sub CallProg(ProgName, ParamArray ProgArgs() As String)
...
End Sub
かさえ、この:
Public Sub CallProg(ProgName, Optional Arg1 As String, Optional Arg2 As String ... Optional Arg20 As String)
彼らはこれをしなかった:
Public Sub CallProg(ProgName)
Public Sub CallProg(ProgName, Arg1 As String)
Public Sub CallProg(ProgName, Arg1 As String, Arg2 As String)
Public Sub CallProg(ProgName, Arg1 As String, Arg2 As String, Arg3 As String)
...
Public Sub CallProg(ProgName, Arg1 As String, ... Arg20 As String)
私は、ログイン処理するための抽象クラスを書いています環境を設定するなど、他の多くのプロジェクトでジェネリックな "ヘルパー"クラスとして使用することができます。 CallProg
subに20オーバーロードが含まれないようにする方法はありますか?
あなたが記述した 'Optional'オプションの何が問題になっていますか? – Oded
ヘルパールーチンを20個のオプションを使って作成した場合、私は 'Select Case'ステートメントに20個の' Case'行が必要です。 1つの引数を必要とするバックエンドプログラムに20個の引数をすべて渡すようにしようとしているので、1つの "実際の"引数と20個の空白の文字列で、基礎となる 'CallProg'サブを呼び出すことはできません。 – mounty
私はあなたがリフレクションを使うことができると思います。 –