C#是一个对象[]作为内联参数可能吗?

时间:2011-06-08 21:56:01

标签: c#

如果我有一个像这样声明的方法:

private void someFunction(object[] param1) 

当我调用此函数时,我是否必须将对象数组声明为变量,或者是否有更快/快捷的方式将其内联传递给函数调用。

我这样做:

Object[] myParam1 = new Object[2]
myParam1[0] = "blah";
myParam1[1] = "blah blah"; 
someFunction(myParam1); 

在我的真实代码中,不是这个例子,我从Marshal调用COM,每次我必须声明参数时代码变得混乱。

3 个答案:

答案 0 :(得分:20)

someFunction(new [] { "blah", "blah blah", "more", "etc" });

答案 1 :(得分:8)

您可以使用C#3.0中引入的数组初始值设定项:

someFunction(new object[] { "blah", "blah blah" }); 

如果您的方法声明如下:

private void someFunction(params object[] param1)
你甚至可以写:

someFunction("blah", "blah blah"); 

答案 2 :(得分:2)

您可以使用数组初始值设定项:

someFunction(new object[]{"blah", "blah blah"});

您还可以更改someFunction的签名以使param1成为params数组:

private void someFunction(params object[] param1)

然后你甚至不需要初始化器;只需将每个“元素”作为自己的参数传递,编译器就会将em放入数组中:

someFunction("blah", "Blah Blah");