Есть ли краткий способ зацикливания на true / false в C #?
У меня ~ 20 строк кода в модульном тесте, я бы предпочел не дублировать, чтобы переключить одно логическое значение true / false.
Я мог бы разбить его на функцию и вызвать дважды, но ме. Этот код чувствует больше похоже на то, что я перебираю возможные значения, чем выполняю отдельное действие с разными параметрами. Даже если бы у меня была функция, я бы предпочел синтаксис зацикливания на возможных значениях, а не просто вызвать его дважды.
Я мог бы написать цикл for
примерно так ...
bool toggle;
for (int i = 0; i < 2; i++)
{
toggle = i == 1;
}
Но это не кажется очень чистым.
Мне нравится этот синтаксис :
for (bool b : { false, true }) { /* ... */ }
Но не похоже, что это скомпилируется в C #.
Edit:
Следуя предложению Йероена о локальных функциях и ответу Дмитрия, я пошел по этому маршруту:
[TestMethod]
public void GetAndSetValue()
{
foreach (bool toggle in new [] { false, true })
{
GetAndSetValue(toggle);
}
void GetAndSetValue(bool toggle)
{
// details not important
}
}
Разумные кодеры могут спорить, проще ли читать цикл, чем два вызова функций:
GetAndSetValue(false);
GetAndSetValue(true);
Мне больше нравится петля, поэтому я буду кататься с ней, пока кто-нибудь не пожалуется Ура!