У меня есть около 20 строк кода в модульном тесте, который я бы не хотел дублировать переключить одно логическое значение true/false.
Я мог бы разбить его на функцию и вызвать ее дважды, но хм. Этот код кажется скорее перебором возможных значений, чем выполнением отдельного действия с разными параметрами. Даже если бы у меня была функция, я бы предпочел использовать синтаксис перебора возможных значений, а не просто вызывать ее дважды.
Я мог бы написать for цикл вот так...
Код: Выделить всё
bool toggle;
for (int i = 0; i < 2; i++)
{
toggle = i == 1;
}
Мне нравится этот синтаксис:
Код: Выделить всё
for (bool b : { false, true }) { /* ... */ }
Изменить:
Следуя предложению Йеруна о локальных функциях и ответу Дмитрия, я пошел по следующему пути:
Код: Выделить всё
[TestMethod]
public void GetAndSetValue()
{
foreach (bool toggle in new [] { false, true })
{
GetAndSetValue(toggle);
}
void GetAndSetValue(bool toggle)
{
// details not important
}
}
Код: Выделить всё
GetAndSetValue(false);
GetAndSetValue(true);
Подробнее здесь: https://stackoverflow.com/questions/511 ... ool-values