此页面有用吗?
您对此内容的反馈非常重要。 请告诉我们您的想法。
更多反馈?
1500 个剩余字符
导出 (0) 打印
全部展开
信息
您所需的主题如下所示。但此主题未包含在此库中。

String.Format 方法

2013/12/13

将指定字符串中的每个格式项替换为相应对象的值的文本等效项。

此成员重载。有关此成员的完整信息(包括语法、用法和示例),请单击重载列表中的名称。

  名称说明
公共方法 静态成员 Format(String, Object) 将指定字符串中的一个或多个格式项替换为指定对象的字符串表示形式。
公共方法 静态成员 Format(String, Object[]) 将指定字符串中的格式项替换为指定数组中相应对象的字符串表示形式。
公共方法 静态成员 Format(IFormatProvider, String, Object[]) 将指定字符串中的格式项替换为指定数组中相应对象的值的文本等效项。指定的参数提供区域性特定的格式设置信息。
公共方法 静态成员 Format(String, Object, Object) 将指定字符串中的格式项替换为两个指定对象的字符串表示形式。
公共方法 静态成员 Format(String, Object, Object, Object) 将指定字符串中的格式项替换为三个指定对象的字符串表示形式。
返回顶部

Format 方法的每个重载均使用[87b7d528-73f6-43c6-b71a-f23043039a49],以在复合格式字符串中包括具有从零开始的索引的占位符(称为格式项)。在运行时,每个格式项都由参数列表中相应参数的字符串表示形式替换。如果参数的值为 null,则用 String.Empty 将其替换。例如,下面对 Format 方法的调用包括一个具有 3 个格式项({0}、{1} 和 {2})的格式字符串和一个具有 3 个项的参数列表。


DateTime dat = new DateTime(2012, 1, 17, 9, 30, 0); 
string city = "Chicago";
int temp = -16;
string output = String.Format("At {0} in {1}, the temperature was {2} degrees.",
                              dat, city, temp);
inputBlock.Text += output;
// The example displays the following output:
//    At 1/17/2012 9:30:00 AM in Chicago, the temperature was -16 degrees.   


格式项具有以下语法:

{index[,alignment][ :formatString] }

括号表示可选元素。需要使用左括号和右括号。格式项具有以下元素:

index

参数(其字符串表示形式将包含在字符串的此位置)的从零开始的索引。

alignment

一个有符号整数,该整数指示参数所插入的字段的总长度以及它是右对齐(正整数)还是左对齐(负整数)。如果省略了 alignment,相应参数的字符串表示形式将插入到不带前导或尾随空格的字段中。

formatString

一个格式字符串,指定相应参数的结果字符串的格式。如果省略了 formatString,则调用相应参数的无参数 ToString 方法以生成其字符串表示形式。如果存在 formatString,格式项引用的参数必须实现 IFormattable 接口。支持格式字符串的类型包括:

说明注意:

要在格式字符串中包含左括号或右括号字符,请参见[87b7d528-73f6-43c6-b71a-f23043039a49]文章中的“转义大括号”部分。

下面的示例演示了如何使用格式项中的可选元素生成格式化输出。


using System;

public class Example
{
   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      // Create array of 5-tuples with population data for three U.S. cities, 1940-1950.
      Tuple<string, DateTime, int, DateTime, int>[] cities = 
          { Tuple.Create("Los Angeles", new DateTime(1940, 1, 1), 1504277, 
                         new DateTime(1950, 1, 1), 1970358),
            Tuple.Create("New York", new DateTime(1940, 1, 1), 7454995, 
                         new DateTime(1950, 1, 1), 7891957),  
            Tuple.Create("Chicago", new DateTime(1940, 1, 1), 3396808, 
                         new DateTime(1950, 1, 1), 3620962),  
            Tuple.Create("Detroit", new DateTime(1940, 1, 1), 1623452, 
                         new DateTime(1950, 1, 1), 1849568) };

      // Display header
      string header = String.Format("{0,-12}{1,8}{2,12}{1,8}{2,12}{3,14}\n",
                                    "City", "Year", "Population", "Change (%)");
      outputBlock.Text += header + Environment.Newline;
      string output;      
      foreach (var city in cities) {
         output = String.Format("{0,-12}{1,8:yyyy}{2,12:N0}{3,8:yyyy}{4,12:N0}{5,14:P1}",
                                city.Item1, city.Item2, city.Item3, city.Item4, city.Item5,
                                (city.Item5 - city.Item3)/city.Item3 * 1.0);
         outputBlock.Text += output + Environment.Newline;
      }
   }
}
// The example displays the following output:
//    City            Year  Population    Year  Population    Change (%)
//    
//    Los Angeles     1940   1,504,277    1950   1,970,358        31.0 %
//    New York        1940   7,454,995    1950   7,891,957         5.9 %
//    Chicago         1940   3,396,808    1950   3,620,962         6.6 %
//    Detroit         1940   1,623,452    1950   1,849,568        13.9 %


显示:
© 2015 Microsoft