Цикл C# по значениям boolC#

Место общения программистов C#
Anonymous
Цикл C# по значениям bool

Сообщение Anonymous »

Есть ли краткий способ перебрать 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#.

Изменить:

Следуя предложению Йеруна о локальных функциях и ответу Дмитрия, я пошел по следующему пути:

Код: Выделить всё

[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

Вернуться в «C#»