我将使用哪些C#构造将这三种类似的方法重构为一种?
void func1()
if (display.count != 0)
{
for (int i = display.count - 1; i >=0; --i)
{
if (display[i].test1())
break;
}
}
}
void func2()
if (display.count != 0)
{
for (int i = display.count - 1; i >=0; --i)
{
if (display[i].test2())
break;
}
}
}
void func3()
if (display.count != 0)
{
for (int i = display.count - 1; i >=0; --i)
{
if (display[i].test3())
break;
}
}
}
答案 0 :(得分:5)
我会将该方法作为一个函数调用,该函数返回一个布尔值并将一个Display(您的对象类型为as asume)作为参数:
void TestFunc(Func<Display, bool> function)
{
for (int i = display.count; i >=0; --i)
{
if (function(display[i]))
break;
}
}
然后您可以这样称呼它:
TestFunc(d => d.test3());