可选的多维数组作为C#中的参数

时间:2014-02-26 20:42:04

标签: c# arrays multidimensional-array

我想声明一个具有1个必需参数和4个可选2D数组参数的函数,我该怎么办?我知道要使参数可选,我们应该在函数创建期间在其中放置一个值。

我也看到我在下面做的是错误的并且有"Array initializers can only be used in a variable or field initializer. Try using a new expression instead."错误

private String communicateToServer(String serverHostname,
                               String[,] disk = new string[] {{"dummy","dummy"}},
                               String[,] hdd= new string[] {{"dummy","dummy"}}
                               String[,] nic= new string[] {{"dummy","dummy"}}
                               String[,] disk = new string[] {{"dummy","dummy"}}
)

1 个答案:

答案 0 :(得分:4)

直接执行此操作是不可能的,但您可以通过执行以下模式获得类似的效果

private String communicateToServer(String serverHostname,
                                   String[,] disk = null,
                                   String[,] hdd= null,
                                   String[,] nic= null) {

   disk = disk ?? new string[] {{"dummy","dummy"}},
   hdd= hdd ?? new string[] {{"dummy","dummy"}}
   nic= nic ?? new string[] {{"dummy","dummy"}}

    ...
}

基本上使用null作为默认值,如果null是转换为实际默认值的值。这确实意味着传递的显式null将被解释为默认值。