Как сократить большой сценарий if-else? - PullRequest
0 голосов
/ 26 августа 2018

Есть ли предложения о том, как оптимизировать и сократить это, если дело:

if (secound < 10)
    TimerLabel.Text = $"{Hour}:{Minute}:0{secound}";
if (Minute< 10)
    TimerLabel.Text = $"{Hour}:0{Minute}:{secound}";
if (Hour < 10)
    TimerLabel.Text = $"0{Hour}:{Minute}:{secound}";
if(secound <10 && Minute < 10)
    TimerLabel.Text = $"{Hour}:0{Minute}:0{secound}";
if (secound < 10 && Hour < 10)
    TimerLabel.Text = $"0{Hour}:{Minute}:0{secound}";
if(Minute < 10 && Hour < 10)
    TimerLabel.Text = $"0{Hour}:0{Minute}:{secound}";
if(Hour < 10 && Minute < 10 && secound < 10)
    TimerLabel.Text = $"0{Hour}:0{Minute}:0{secound}";

Ответы [ 4 ]

0 голосов
/ 26 августа 2018

Часто мы не хотим работать с Hour, Minute, second отдельно (только представьте, как сложно будет выполнить очень простую операцию, такую ​​как добавление 5часов, 59 минут и 47 секунд), но с TimeSpan, который был специально разработан для этого:

   TimeSpan period = new TimeSpan(Hour, Minute, second);

   ...

   TimerLabel.Text = period.ToString();

В случае Hour, Minute, second означает время , а не период использование DateTime:

   DateTime time = DateTime.Today.Add(new TimeSpan(Hour, Minute, second));

   ...

   TimerLabel.Text = time.ToString("HH:mm:ss");
0 голосов
/ 26 августа 2018

Достаточно указать числовой формат каждого компонента:

 TimerLabel.Text = $"{Hour:D2}:{Minute:D2}:{secound:D2}";

D2 = десятичный вывод, два символа

0 голосов
/ 26 августа 2018

Просто используйте Синтаксис формата строки

TimerLabel.Text = $"{Hour:00}:{Minute:00}:{Second:00}");
0 голосов
/ 26 августа 2018

Это всего одна строка.Используйте строковое числовое форматирование

TimerLabel.Text = $"{Hour:D2}:{Minute:D2}:{secound:D2}";

Буква D (спецификатор формата), за которой следуют числовые значения (спецификатор точности), указывает форматирующему коду ввести достаточно символов «0» для заполнения требуемогопространство

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...