42 votes

des instructions abrégées If : C#

Juste une petite question, y a-t-il un moyen de raccourcir les choses ?

Il s'agit essentiellement de déterminer la direction à gauche ou à droite, 1 pour la gauche, 0 pour la droite.

En C# :

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

La déclaration qui suit sera :

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

S'il n'y en a pas, cela n'a pas vraiment d'importance ! simple curiosité :)

48voto

Mike Dour Points 1898

Pour utiliser un raccourci pour obtenir la direction :

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

Pour simplifier entièrement le code :

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

34voto

Hyperboreus Points 486

Utilisez l'opérateur ternaire

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

21voto

99tm Points 19742

Oui. Utilisez l'opérateur ternaire.

condition ? true_expression : false_expression;

4voto

Piotr Kwiatek Points 51

Récemment, j'ai vraiment apprécié les instructions abrégées if else en remplacement de la casse. À mon avis, c'est plus facile à lire et prend moins de place. Jetez un coup d'oeil :

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

au lieu de

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X