2017-12-21 14 views
2

これは2つのことで注意します。 1つ、私はあなたほどスマートではない(私は本当にない)。第二に、自分の質問に対する答えを見つけたかもしれませんが、確認したいと思っています。C# - 複数の配列を同時に宣言する

私は同時に複数の配列を宣言しようとしています。このような感じです。

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

私はこれを行うことができます

:第二は、同じ行にprofit_Normalとprofit_Highの両方を宣言しようとしながら、最初はただ、単一のアレイを宣言していますか?

double 
BUpper, 
BUpper_Prev, 
BUpper_Prev2; 

あなたは瞬間を持っている場合、私に知らせてください。私は現在、このように、カンマで非配列の値を宣言するために、この構文を使用します。

+3

はいのことができます。それは完全に有効です。私はこれがCのほうでより一般的であることを認めなければなりませんが、これはC#のように書く人を見るのが一般的ではありませんが、それは有効です。 –

+1

n個の新しい二重配列が必要な場合は、n * new double *代入が必要です。 –

+0

コメントと検証のおかげで大変ありがとうございました。私はまた、私のポストのタイトルが誤ってOffice Spaceから人気のあるラインを参照していたことに気づいた。 – Spiderbird

答えて

6

コード

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

のあなたのラインは、複数のdouble[]を宣言しません。それはすべてを初期化することではありません。 2番目のものだけを初期化します。あなたは以下の行を持っている場合は

は:

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

何が起こるかは、あなたがdoubleの配列の4つの参照を宣言しているということです。配列ごとに、初期化する必要があることを宣言します。これは、最後の配列に対してのみ行います。実際に彼らにを初期化に必要な複数のアレイを初期化するために

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

配列のケースと、このdouble BUpper, BUpper_Prev, BUpper_Prev2;との違いは、配列がそれぞれのデフォルト値はnullと必見です参照型であるということです初期化されますが、doulbeのデフォルト値は0です。

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

double[]部分が宣言された変数のタイプです:

+0

Gilad!ありがとうございました!間違いなく他の例との比較を感謝します。それを透明にしました。御時間ありがとうございます。 – Spiderbird

+0

@Spiderbird - あなたは歓迎です:)喜んで助けました –

3

はい、これは絶対に限り、あなたは、あなたが配列を宣言していることを示すために、宣言で[]を保つよう、許可されています。あなたの場合、それはdoubleの配列です。

上記と2番目の宣言の唯一の違いは、profit_Normal変数を初期化していないことです。

+0

ええ、私はあなたと他のコメントが入ってきたことに気付きました。最初の宣言は分離されており、初期化されていませんでした。それを指摘してくれてありがとう。 – Spiderbird

1

あなたが現在使用するのと同じ構文を使用できますが、それぞれ1 インスタンス化のためにだけでなく、それを宣言し、それが各1の後= new double[5]で、次のようになります。

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

ありがとうMarathon55。私は宣言を行っても、その構文を間違いなく使用します。とても有難い。 – Spiderbird

関連する問題