Подтвердить что ты не робот

Стенограмма Если утверждения: С#

Просто быстрый, есть ли все это, чтобы сократить это?

В основном он определяет направление влево или вправо, 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
}

Если нет, это не имеет большого значения! просто любопытно:)

4b9b3361

Ответ 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;
}