开发者

shorthand If Statements: C#

开发者 https://www.devze.com 2023-03-07 02:24 出处:网络
Just a quick one, Is there anyway to shorthand this? It\'s basically determining the direction left or right, 1 for left, 0 for right

Just a quick one, Is there anyway to shorthand this?

It's basically determining the direction left or right, 1 for left, 0 for right

In C#:

if (column == 0) { direction = 0; }
else if (column == _gridSize - 1) { direction = 1; }
else { direction = rand.Next(2); }

The statement following this will be:

if (direction == 1)
{
    // do something
}
else
{
    // do something else
}

If there isn't, it doesn't really matter!开发者_C百科 just curious:)


To use shorthand to get the direction:

int direction = column == 0
                ? 0
                : (column == _gridSize - 1 ? 1 : rand.Next(2));

To simplify the code entirely:

if (column == gridSize - 1 || rand.Next(2) == 1)
{
}
else
{
}


Use the ternary operator

direction == 1 ? dosomething () : dosomethingelse ();


Yes. Use the ternary operator.

condition ? true_expression : false_expression;


Recently, I really enjoy shorthand if else statements as a swtich case replacement. In my opinion, this is better in read and take less place. Just take a look:

var redirectUrl =
      status == LoginStatusEnum.Success ? "/SecretPage"
    : status == LoginStatusEnum.Failure ? "/LoginFailed"
    : status == LoginStatusEnum.Sms ? "/2-StepSms"
    : status == LoginStatusEnum.EmailNotConfirmed ? "/EmailNotConfirmed"
    : "/404-Error";

instead of

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;
}
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号