速记如果声明:C#

Ale*_*nch 36 .net c# if-statement

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

它基本上是左或右的方向,左边是1,右边是0

在C#中:

if (column == 0) { direction = 0; }
else if (column == _gridSize - 1) { direction = 1; }
else { direction = rand.Next(2); }
Run Code Online (Sandbox Code Playgroud)

此后的声明将是:

if (direction == 1)
{
    // do something
}
else
{
    // do something else
}
Run Code Online (Sandbox Code Playgroud)

如果没有,那真的不重要!只是好奇:)

Mik*_*our 41

用速记来获取方向:

int direction = column == 0
                ? 0
                : (column == _gridSize - 1 ? 1 : rand.Next(2));
Run Code Online (Sandbox Code Playgroud)

完全简化代码:

if (column == gridSize - 1 || rand.Next(2) == 1)
{
}
else
{
}
Run Code Online (Sandbox Code Playgroud)


Hyp*_*eus 28

使用三元运算符

direction == 1 ? dosomething () : dosomethingelse ();
Run Code Online (Sandbox Code Playgroud)

  • 我头上的灰烬!我的错!我的错!在C之后我没有看到微小的哈希.愤怒的编译器不容小觑. (4认同)
  • [你的例子](http://www.ideone.com/IAmFW)让编译器真的很生气.这不是一个C问题! (3认同)
  • 返回类型`dosomething()`和`dosomethingelse()`两者必须相同. (2认同)

sgo*_*les 14

是.使用三元运算符.

condition ? true_expression : false_expression;
Run Code Online (Sandbox Code Playgroud)

  • 你可以写得更好->条件?真表达式:假表达式; (2认同)

Pio*_*tek 5

最近,我真的很喜欢速记,如果其他声明作为swtich案例替换.在我看来,这在阅读中更好,占用更少的地方.看看:

var redirectUrl =
      status == LoginStatusEnum.Success ? "/SecretPage"
    : status == LoginStatusEnum.Failure ? "/LoginFailed"
    : status == LoginStatusEnum.Sms ? "/2-StepSms"
    : status == LoginStatusEnum.EmailNotConfirmed ? "/EmailNotConfirmed"
    : "/404-Error";
Run Code Online (Sandbox Code Playgroud)

代替

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;
}
Run Code Online (Sandbox Code Playgroud)

  • 开关看起来更清晰,更开发友好.编译器只是不给af#$#:) (2认同)