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

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

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

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

Чтобы использовать стенографию, чтобы получить направление:

 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; 

В последнее время мне очень нравятся сокращения, если другие заявления как замена 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; }