Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#对象[]是否可以作为内联参数?_C# - Fatal编程技术网

C#对象[]是否可以作为内联参数?

C#对象[]是否可以作为内联参数?,c#,C#,如果我有一个这样声明的方法: private void someFunction(object[] param1) Object[] myParam1 = new Object[2] myParam1[0] = "blah"; myParam1[1] = "blah blah"; someFunction(myParam1); private void someFunction(params object[] param1) 调用此函数时,是否必须将对象数组声明为变量,或者是否有一种

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

private void someFunction(object[] param1) 
Object[] myParam1 = new Object[2]
myParam1[0] = "blah";
myParam1[1] = "blah blah"; 
someFunction(myParam1); 
private void someFunction(params object[] param1)
调用此函数时,是否必须将对象数组声明为变量,或者是否有一种更快/快捷的方法将其内联传递给函数调用

我是这样做的:

private void someFunction(object[] param1) 
Object[] myParam1 = new Object[2]
myParam1[0] = "blah";
myParam1[1] = "blah blah"; 
someFunction(myParam1); 
private void someFunction(params object[] param1)

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

someFunction(新[]{“诸如此类”、“诸如此类”、“更多”、“等等”})

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

如果您的方法声明如下:

private void someFunction(object[] param1) 
Object[] myParam1 = new Object[2]
myParam1[0] = "blah";
myParam1[1] = "blah blah"; 
someFunction(myParam1); 
private void someFunction(params object[] param1)
你甚至可以写:

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

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

someFunction(new object[]{"blah", "blah blah"});
您还可以更改someFunction的签名,使param1成为params数组:

private void someFunction(params object[] param1)
那么你甚至不需要初始值设定项;只需将每个“元素”作为自己的参数传递,编译器就会将它们抛出一个数组中:

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

一个音符;编译器必须能够将数组元素的类型推断为对象以外的其他类型,非类型化数组初始值设定项才能工作。如果您尝试了
someFunction(new[]{“blah”,“blah blah”,new MyObject})它不会工作得这么好。但是,
string[]
可以被视为
object[]
,因此这种特殊情况可以使用。