0

私は 2 つの DLL を持っていますが、それらは 90% が同じメソッドを持ち、各 DLL は異なる外部カードを扱っています。より少ないコードを記述できるようにコードを整理する最良の方法は何ですか: 例:

Call_Method_A(1); //1 is the dll/card number

public void Call_Method_A(int cardNumber)
{
    if(cardNumber==1)
    //call function from dll 1
    else
    //call functio from dll 2
}
4

2 に答える 2

2

これを解決するには、ポリモーフィズムを使用します。クラスが共有するメソッドを含むインターフェイスを作成できます。クラスにこのインターフェースを実装させます。次に、そのインターフェイスの変数を作成し、クラスの 1 つをその変数に割り当てることができます。その後、変数を使用してクラスにアクセスし、メソッドを呼び出すことができます。
このようにして、次のような多くの条件式を回避します

If (cardNumber == 1) // ...
于 2013-11-05T15:25:32.223 に答える
1

あなたの提案は良いですが、もしそうであれば... フロー制御であなたのメソッドを複雑にするかもしれません。

共通のコード スニペットを抽出してコードをリファクタリングできれば、カードごとに個別のメソッドを作成できます。

この方法により、コードを再利用し、メソッドをできるだけ単純に保つことができます。

同じ dll または別の dll で実行し、共通の dll を参照できます。

于 2013-11-05T15:40:45.267 に答える