C# - 同时声明多个数组

时间:2017-12-21 18:20:02

标签: c# arrays declaration

好的,我会用两件事来说明这个问题。一,我不像你那么聪明(我真的没有)。其次,我可能已经找到了自己问题的答案,但想要验证。

我正在尝试同时声明多个数组。它看起来像这样。第一个是声明一个数组,而第二个尝试在同一行声明profit_Normal和profit_High:

double [] tradeType_Active = new double [15];
double [] profit_Normal, profit_High = new double [5];

我可以这样做吗?我目前使用这种语法用逗号声明非数组值,如下所示:

double
BUpper,
BUpper_Prev,
BUpper_Prev2;

请稍等片刻告诉我。

3 个答案:

答案 0 :(得分:7)

您的代码行

double[] profit_Normal, profit_High = new double[5];

确实声明了多个double[]。它没有做的是初始化所有这些。它只初始化第二个。

如果您有以下行:

double[] a, b, c, d = new double[5];

发生的事情是您声明4个double数组的引用。对于您声明的每个数组,您必须对其进行初始化 - 您只对最后一个进行初始化。

要初始化多个阵列,您需要实际初始化它们

double[] profit_Normal = new double[5], profit_High = new double[5];

数组大小写和double BUpper, BUpper_Prev, BUpper_Prev2;之间的区别在于数组是引用类型,其默认值为null且必须初始化,而doulbe的默认值是0

答案 1 :(得分:3)

是的,这是绝对允许的,只要您在声明中保留[]以表明您正在声明一个数组:

double[] a = new double[4], b = new double[5];

double[]部分是声明的变量类型。在您的情况下,这是一个double的数组。

请注意,上述和第二个声明之间的唯一区别是您没有初始化profit_Normal变量。

答案 2 :(得分:1)

您可以使用当前使用的相同语法,但为了实例化每个语法以及声明它,它看起来像这样,每一个后面都有= new double[5]:< / p>

double[]
profit_Normal = new double[5],
profit_High = new double[5];