Я написал несколько if-то еще такие заявления:Перепишите, если еще в коммутаторе
if (workedDays > 0 && workedDays <= 180)
{
x= 14;
}
if (workedDays > 180 && workedDays <= 540)
{
x= 28;
}
if (workedDays > 540 && workedDays <= 1068)
{
x= 42;
}
else
{
x= 56;
}
Я пытался переписать его как переключатель заявление, как это:
switch (workedDays)
{
case (workedDays > 0 && workedDays <= 180):
x=14;
break;
default:
break;
}
Однако, Я получаю ошибку Cannot implicitly convert type 'bool' to 'int'
.
Как это исправить?
workingDays - это int, а выражения вашего переключателя оцениваются как bools, поэтому очевидно, что это не работает. Я думаю, что утверждения IF лучше и понятнее в этом случае, не используйте переключатель, если нет реальной выгоды. –
Коммутатор может использовать только константы в C#. Не такие выражения, как VB.Net. Что не так с вашим if: s? – adrianm
«Если» больше подходит в этой ситуации –