私は、それぞれが別のWindowsアプリケーションで使用される個別のdllを生成する2つのプロジェクトを持つソリューションを持っています。これらの各プロジェクトには、MyActionsというクラスがあり、そのようなメソッドは1つだけです。
Project1
public class MyActions
{
public SomeTypeA DoJob(string str1, string str2)
{
}
}
プロジェクト2
public class MyActions
{
public SomeTypeB DoJob(string str1)
{
}
}
これら2つのクラスの2つのリターンタイプは次のとおりです。
public class SomeTypeA
{
public string stringA { get; set; }
public int someInt { get; set; }
}
public class SomeTypeB
{
public string someStringA { get; set; }
}
これらの個々のプロジェクトの両方のクラスのメソッドDoJobには、ほぼ80%のコードが同じです。Project1は、MyActions
クラスのDoJob
メソッドにProject1のみに固有の追加ビットが含まれているものです。これがひねりです。Project1は最終的に廃棄され、そのdllは使用されなくなります。コードが繰り返されないように、コードを作成する必要がないように、可能な限り最善の方法でコードを記述したいと思います。 Project1が廃止された後、Project2の不要なコードを削除するための変更。
継承を使用してDoJobメソッドをオーバーライドすることを考えていました。戻り値のタイプが異なり、入力パラメーターが異なる場合、これはどのように機能しますか?おそらく、Project1のMyActionsクラスからそのコンストラクターにパラメーターの1つをプッシュしますか?Project1にProject2のMyActionsクラスへのリンクを追加することも考えていました。しかし、それを実装し、自分自身を繰り返したり、後で予期しない問題に遭遇したりしないようにする方法についてはよくわかりません。ヒント、提案はありますか?