我将如何在 C# 中重构三个相似的方法
How would I refactor three similar methods in C#
我将使用什么 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;
}
}
}
我会将要调用的方法作为一个函数传递给 returns 一个布尔值,并将一个 Display(我假设的对象类型)作为参数:
void TestFunc(Func<Display, bool> function)
{
for (int i = display.count; i >=0; --i)
{
if (function(display[i]))
break;
}
}
然后你可以这样称呼它:
TestFunc(d => d.test3());
我将使用什么 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;
}
}
}
我会将要调用的方法作为一个函数传递给 returns 一个布尔值,并将一个 Display(我假设的对象类型)作为参数:
void TestFunc(Func<Display, bool> function)
{
for (int i = display.count; i >=0; --i)
{
if (function(display[i]))
break;
}
}
然后你可以这样称呼它:
TestFunc(d => d.test3());