C# String.Format 可选参数

Ker*_*Med 5 c# parameters string.format optional

我想string.Formatoptional parameters

public static void Main(string[] args)
{
    // Your code goes here
    // Console.WriteLine(string.Format("{0} {1}", "a", "b"));
    Console.WriteLine(string.Format("{0} {1}", "a"));
}
Run Code Online (Sandbox Code Playgroud)

例如,参数{1}是可选的并具有默认值

你能帮我做这个吗?

Hei*_*nzi 7

这取决于您所说的“可选参数”是什么意思。

如果要自动替换null为默认值,最简单的方法是在参数中使用空合并运算符:

String.Format("{0} {1}", 
              "a",
              someNullableVariableContainingB ?? "default value");
Run Code Online (Sandbox Code Playgroud)

如果您想为多个 String.Format 调用重用相同的格式化字符串,例如

var myFormatString = "{0} {1}";
var string1 = String.Format(myFormatString, "a", "b");
var string2 = String.Format(myFormatString, "a");
Run Code Online (Sandbox Code Playgroud)

那么你就不走运了:如果提供的参数太少,String.Format抛出异常,并且无法在格式字符串中指定“可选参数”。您将不得不使用 String.Format 以外的其他东西,例如,一个自定义方法,用其预期的默认值替换缺少的参数。