string.Format表如何在尽可能多的对象中使用?

时间:2010-12-31 21:30:33

标签: c#

在使用String.Format()时,我总是会留下印象,在使用对象数组之前,你只能使用3个对象。

最近我发现情况并非如此,您可以根据需要添加。

如何做到这一点?它是否像动态重载一样,或者将它全部转换为数组。

//thought this was the max that could be sent in
String.Format(String, Object, Object, Object);
//before you had to do something like this

object[] format = new object[5];
format[0] = "abc";
...
String.Format(String, format);

// yet it seems you can do
String.Format(String, Object, Object, Object, Object, Object, Object, Object, Object, Object);

5 个答案:

答案 0 :(得分:5)

这是params关键字的用途。允许任意数量的参数。编写该方法以接受数组。编译器为您插入数组创建。

答案 1 :(得分:2)

它在方法参数上使用params关键字。所以方法定义如下:

public static string Format(string input, params object[] values)
{
}

您可以调用该函数,就好像它有n个参数一样,但它会作为数组传递给方法。

答案 2 :(得分:1)

使用params关键字,您可以编写从调用者角度获取可变数量参数的方法,并且编译器从被调用者的角度将其转换为数组。

答案 3 :(得分:1)

它使用params关键字

 public static string Format(string template,params object[] data)
{
    //
}

答案 4 :(得分:0)

MSDN参考:

params (C# Reference)

void Method(params object[] objs)
{
    // use objs
}