簡體   English   中英

如何縮短大型if-else場景?

[英]How to shorten a large if-else scenario?

是否有任何關於如何優化的建議,並在以下情況下縮短此時間:

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

它只是一行。 使用字符串數字格式

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

字母 D(格式說明符)后跟一個數值(精度說明符)指示格式代碼提供足夠的“0”字符來填充所需的空間

只需使用String.Format 語法

TimerLabel.Text = $"{Hour:00}:{Minute:00}:{Second:00}");

指定每個組件的數字格式應該就足夠了:

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

D2 = 十進制輸出,兩個字符

通常,我們不希望與工作HourMinutesecond分開(試想一下,有COMLEX它會像添加執行非常簡單的操作5小時, 59分鍾, 47秒為單位),但隨着TimeSpan專門desinged為了這:

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

   ...

   TimerLabel.Text = period.ToString();

如果HourMinutesecond表示時間,而不是時間段,請使用DateTime

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

   ...

   TimerLabel.Text = time.ToString("HH:mm:ss");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM