速记 If 语句:C#

本文关键字:语句 If 速记 | 更新日期: 2023-09-27 17:56:59

只是一个快速的,有没有简写这个?

它基本上是确定左或右的方向,1 代表左,0 代表右

在 C# 中:

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
}

如果没有,那也没关系!只是好奇:)

速记 If 语句:C#

使用速记获取方向:

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

要完全简化代码,请执行以下操作:

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

使用三元运算符

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

是的。使用三元运算符。

condition ? true_expression : false_expression;

最近,我真的很喜欢速记 if else 语句作为 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;
}