我将如何在 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());