mda*_*019 1 c# arrays params multidimensional-array
当我们将params关键字与多维数组一起使用时,为什么会出现编译时错误?
using System;
namespace Testing_Params_Keyword
{
class Program
{
static void Main(string[] args)
{
//Calculate in invoked
Calculate(25.4, 26.2, 27.8, 28.9);
}
//Declearing Calculate method
public static void Calculate(params float [ , ] Money)//----** Here is error **
{
//Divide values of column1 by column2
float row1 = Money[0, 0] / Money[0, 1];
float row2 = Money[1, 0] / Money[1, 1];
Console.WriteLine(row1 + row2);
}//end of method Calculate
}
}
Run Code Online (Sandbox Code Playgroud)
给我错误
params参数必须是单维数组
为什么它必须是单维数组?
因为C#编译器所做的一切,尽管是神奇的 - 必须有一些背后的逻辑.params关键字只创建一个数组,其大小是您传递的参数数量.这是编译器可以建立的数据.但是,它不能推断出您想要的维数,甚至元素数量每个维度.因此,您尝试做的事情永远不会编译.