如果我有一个像这样声明的方法:
private void someFunction(object[] param1)
当我调用此函数时,我是否必须将对象数组声明为变量,或者是否有更快/快捷的方式将其内联传递给函数调用。
我这样做:
Object[] myParam1 = new Object[2]
myParam1[0] = "blah";
myParam1[1] = "blah blah";
someFunction(myParam1);
在我的真实代码中,不是这个例子,我从Marshal调用COM,每次我必须声明参数时代码变得混乱。
答案 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");