2010-10-05 25 views
1

如何將這個易於編寫(和讀取)的字符串格式化例程轉換爲「合適的」String.Format等效代碼?C#:這是什麼String.Format形式?

Int32 power; 
Single voltage; 
Int32 kVA; 
Double powerFactor; 

powerFactor = power/kVA; 

label1.Text = 
     DateTime.Now.ToString() + ": " + 
     power.ToString() + "W, " + 
     voltage.ToString() + "V "+ 
     "(pf "+(powerFactor*100.0).ToString()+"%)"; 

//label1.Text = String.Format("{g}: {0:g}W, {0:g}V (p.f. {0:0%}%)", 
//  DateTime.Now, power, voltage, powerFactor); 

我花了大約10分鐘試圖使用String.Format;記錄它的人應該被終止。

回答

9
string.Format("{0}: {1}W, {2}V (pf {3}%",DateTime.Now,power,voltage,powerFactor*100) 

所以,這裏是我認爲令你困惑的事情。每個{0}是您傳遞的對象的索引。{0}是第一個對象,{1}是第二個對象,依此類推。您還可以指定格式,寬度和其他內容太多,以便在此處列出。我使用SteveX string ref滿足我的大多數需求。

label1.Text = String.Format("{0:g}: {1:g}W, {2:g}V (p.f. {3:0.0%})", 
     DateTime.Now, power, voltage, powerFactor); 
+0

具有諷刺意味的是我在另一個選項卡上打開的網站;沒有人有多個價值的例子。它需要相當多的狩獵來找到多個參數的語法(一個站點將它作爲String.Format(「...」,new Object [] {value1,value2,value3})' – 2010-10-05 03:52:17

+0

+ amillion - 我希望我可以爲SteveX String Formatting FAQ投票給你幾次,肯定有東西在那裏,我從來沒有見過。 – 2010-10-05 15:16:05

+0

lol我用它足夠我擁有書籤在所有browswers中 – 2010-10-05 15:49:12