Каков наилучший способ упрощения класса, который содержит два метода, выполняющих почти аналогичную работу.Лучший способ удалить дублированный код в 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 имеет два поля разных типов. Каков наилучший способ удаления дублированного кода?
Переместить первое вхождение в метод, то вызовите метод вместо второго (и последующего) вхождения (я). – ChrisF
@ChrisF, эти методы вызываются независимо, а не один, затем другой. Когда команда имеет один тип, CheckState вызывает, другой - CheckValue. Проблема в том, что состояние и значение имеют разные типы. Может быть, я могу сделать один общий метод с параметром T (и T будет первым аргументом этого метода) – snoward
@MikhailPliskovsky - Я предполагал, что код, на который ссылается '// какая-то работа', был тем же и что вы 'd refactor, не обязательно тесты. – ChrisF