0
クラスを単純化する最も良い方法は、ほぼ同じような作業を行う2つのメソッドが含まれています。Cで重複したコードを削除する最も良い方法#
enum State
{
Processing, Stoped
}
public static void CheckState(State state, Element elem)
{
if (elem.State == state)
//some work
}
public static void CheckValue(int value, Element elem)
{
if (elem.Value == value)
//some work
}
したがって、Elementクラスのオブジェクトには、異なるタイプの2つのフィールドがあります。重複したコードを削除する最良の方法は何ですか?
移動方法に最初に出現し、その後、 2番目(および後続)のオカレンスの代わりにメソッドを呼び出します。 – ChrisF
@ChrisFでは、このメソッドは1つではなく別々に呼び出されます。コマンドが1つのタイプの場合、CheckStateは別のCheckValueを呼び出します。 問題は、状態と値が異なるタイプであることです。 パラメータTを持つ汎用メソッドを1つ作ることができます(そして、Tがこのメソッドの最初の引数になります)。 – snoward
@MikhailPliskovsky - 私は '// some work'で書かれたコードが同じで、リファクタ、必ずしもテストではありません。 – ChrisF