简化类的最佳方法是什么,它包含两个完成类似工作的方法。
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类的对象有两个不同类型的字段。删除重复代码的最佳方法是什么?
答案 0 :(得分:0)
您可以为条件传递函数。传递元素,因为我假设您需要它进行处理。
8080
用法:
public static void CheckAndProcess(Func<bool> CheckCondition, Element elem)
{
if (CheckCondition())
{
//some work
}
}
答案 1 :(得分:0)
您也可以在没有匿名功能的情况下执行此操作:
public static void CheckElement(Element element, State state = null, int? value = null)
{
if ((state != null && element.State == state) || (value != null && element.Value == value.Value))
{
//some work
}
}
用法:
//for state
CheckElement(element, myState);
//or
//for value
CheckElement(element, value: myValue);