📜  C#中的String.Format()方法,包含示例|套装– 2(1)

📅  最后修改于: 2023-12-03 15:30:19.123000             🧑  作者: Mango

C#中的String.Format()方法

在C#中,String.Format()是一个非常有用的方法,用于格式化字符串。它可以将一个格式字符串和一组参数作为输入,并生成一个结果字符串,使得输出看起来更加清晰和有组织。

基本用法

以下是一个基本的使用String.Format()方法的示例:

string firstName = "John";
string lastName = "Doe";
string result = String.Format("My name is {0} {1}.", firstName, lastName);
Console.WriteLine(result);
// Outputs: "My name is John Doe."

在这个例子中,我们定义了一个格式字符串"My name is {0} {1}.",其中{0}代表第一个参数,即firstName,{1}代表第二个参数,即lastName。然后通过String.Format()方法将firstName和lastName替换相应的位置,生成了最终的字符串。

格式化参数

String.Format()方法支持许多不同的格式选项,可以将参数格式化为特定的样式。以下是一些常见的格式选项:

  • 数字格式化选项:{0:#.##}表示将第一个参数格式化为带有两个小数位的数字。
  • 日期格式化选项:{0:MM/dd/yyyy}表示将第一个参数格式化为月/日/年的日期格式。
  • 货币格式化选项:{0:C}表示将第一个参数格式化为货币格式。

以下是一个使用格式化选项的示例:

int age = 30;
DateTime birthdate = new DateTime(1990, 1, 1);
decimal salary = 50000.50m;

string result = String.Format("I am {0} years old, my birthday is {1:MM/dd/yyyy}, and my salary is {2:C}.", age, birthdate, salary);
Console.WriteLine(result);
// Outputs: "I am 30 years old, my birthday is 01/01/1990, and my salary is $50,000.50."

在这个例子中,我们使用了数字格式化选项{0}和日期格式化选项{1}来格式化第一个和第二个参数。我们还使用了货币格式化选项{2:C}来格式化第三个参数。

命名参数

另一个很有用的功能是可以使用命名参数来进一步简化格式化字符串中参数的操作。以下是一个使用命名参数的示例:

string result = String.Format("I am {age} years old, my birthday is {birthdate:MM/dd/yyyy}, and my salary is {salary:C}.", new { age, birthdate, salary });
Console.WriteLine(result);
// Outputs: "I am 30 years old, my birthday is 01/01/1990, and my salary is $50,000.50."

在这个例子中,我们使用了一个匿名对象来传递我们的参数,并使用了相应的属性来命名每个参数。这样,我们就可以在格式化字符串中直接使用这些属性名,而无需指定它们的位置。

示例代码

下面是以上所有示例的完整代码:

using System;

class Program
{
    static void Main(string[] args)
    {
        // Basic usage
        string firstName = "John";
        string lastName = "Doe";
        string result = String.Format("My name is {0} {1}.", firstName, lastName);
        Console.WriteLine(result);
        // Outputs: "My name is John Doe."

        Console.WriteLine();

        // Format options
        int age = 30;
        DateTime birthdate = new DateTime(1990, 1, 1);
        decimal salary = 50000.50m;

        string result2 = String.Format("I am {0} years old, my birthday is {1:MM/dd/yyyy}, and my salary is {2:C}.", age, birthdate, salary);
        Console.WriteLine(result2);
        // Outputs: "I am 30 years old, my birthday is 01/01/1990, and my salary is $50,000.50."

        Console.WriteLine();

        // Named arguments
        string result3 = String.Format("I am {age} years old, my birthday is {birthdate:MM/dd/yyyy}, and my salary is {salary:C}.", new { age, birthdate, salary });
        Console.WriteLine(result3);
        // Outputs: "I am 30 years old, my birthday is 01/01/1990, and my salary is $50,000.50."
    }
}

以上是使用String.Format()方法的基本方法和格式选项。开始使用它,以使你的代码更简洁,更好的格式化输出字符串。