C#:String.Format的形式是什么?

Ian*_*oyd 1 c# string-formatting

如何将这种易于编写(和读取)的字符串格式化例程转换为"适当的" 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);
Run Code Online (Sandbox Code Playgroud)

我花了大约10分钟尝试使用String.Format; 记录它的人应该被终止.

Mua*_*Dib 9

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

所以,我认为这是令你困惑的事情.每个{0}都是您传入的对象的索引.{0}是第一个对象,{1}第二个,等等.您还可以指定格式,宽度和其他数量太多,无法在此处列出.我使用SteveX字符串ref来满足我的大部分需求.

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