Стенограмма Если утверждения: С#
Просто быстрый, есть ли все это, чтобы сократить это?
В основном он определяет направление влево или вправо, 1 для левой, 0 для правого
В С#:
if (column == 0) { direction = 0; }
else if (column == _gridSize - 1) { direction = 1; }
else { direction = rand.Next(2); }
Заявление, следующее за этим, будет:
if (direction == 1)
{
// do something
}
else
{
// do something else
}
Если нет, это не имеет большого значения! просто любопытно:)
Ответы
Ответ 1
Чтобы использовать указатель для направления:
int direction = column == 0
? 0
: (column == _gridSize - 1 ? 1 : rand.Next(2));
Чтобы полностью упростить код:
if (column == gridSize - 1 || rand.Next(2) == 1)
{
}
else
{
}
Ответ 2
Использовать тернарный оператор
direction == 1 ? dosomething () : dosomethingelse ();
Ответ 3
Да. Используйте тернарный оператор.
condition ? true_expression : false_expression;
Ответ 4
В последнее время мне действительно нравятся сокращения, если другие заявления как замена swtich. На мой взгляд, это лучше читать и занимать меньше места. Просто взгляните:
var redirectUrl =
status == LoginStatusEnum.Success ? "/SecretPage"
: status == LoginStatusEnum.Failure ? "/LoginFailed"
: status == LoginStatusEnum.Sms ? "/2-StepSms"
: status == LoginStatusEnum.EmailNotConfirmed ? "/EmailNotConfirmed"
: "/404-Error";
вместо
string redirectUrl;
switch (status)
{
case LoginStatusEnum.Success:
redirectUrl = "/SecretPage";
break;
case LoginStatusEnum.Failure:
redirectUrl = "/LoginFailed";
break;
case LoginStatusEnum.Sms:
redirectUrl = "/2-StepSms";
break;
case LoginStatusEnum.EmailNotConfirmed:
redirectUrl = "/EmailNotConfirmed";
break;
default:
redirectUrl = "/404-Error";
break;
}