我有一个方法,需要参数.在方法内部,另一个变量应添加到输出中:
private void ParamsTest(params object[] objs)
{
var foo = "hello";
// Invalid: Interpretes objs as single array parameter:
Console.WriteLine("{0}, {1}, {2}", foo, objs);
}
Run Code Online (Sandbox Code Playgroud)
我打电话的时候
ParamsTest("Hi", "Ho");
Run Code Online (Sandbox Code Playgroud)
我想看看输出.
hello Hi Ho
Run Code Online (Sandbox Code Playgroud)
我需要做什么?
我可以复制foo并objs进入一个新的数组并传递该数组,WriteLine但是有更优雅的方式强制objs再次表现为params吗?那种objs.ToParams()?
Jan*_*Jan 10
如果您的问题只是向阵列中添加另一个元素,则可以使用List
List<object> list = new List<object> { "hello" };
list.AddRange(objs);
Console.WriteLine("{0}, {1}, {2}, ...", list.ToArray());
Run Code Online (Sandbox Code Playgroud)
params不是数据类型.参数数据类型仍然是普通数组.
我会string.Join用来做格式化:
Console.WriteLine("{0}, {1}", foo, string.Join(", ", objs));
Run Code Online (Sandbox Code Playgroud)