2016-07-12 13 views
0

事故によって、私は無限の配列を作成しているように見えますが、これはC#では可能ではないと思います。エラーは発生していません。コードは機能しますが、オンラインドキュメントで使用した配列宣言は参照されません。私は他の状況でこの方法を使ってみましたが、毎回エラーが出ます。なぜこれは機能しますか?ビジュアルC#で無制限の配列ですか?

Array arrLines; 

arrLines = System.IO.File.ReadAllLines(strTargetFilePath2); 
foreach (string strLine2 in arrLines) 
{ 
eventLog1.WriteEntry(strLine2); 
} 
+0

無制限ではありません。あなたの 'ReadAllLines'の後に' arrLines [arrLines.Length] = "foo" 'のようなものを試してみてください。 –

答えて

5

Array arrLines;実際には配列を作成しません。配列を割り当てることができる変数を設定するだけです。

参照型であるため、arrLinesを宣言するときに長さを設定する必要はありません。つまり、配列の内容ではなく仮想の配列内容にアドレスを保持します。

System.IO.File.ReadAllLines(strTargetFilePath2); はアレイを作成するものであり、その配列には特定の長さがあります。

+0

なので、読み込んだ行数に基づいて有限の配列が作成されますか? –

+0

@XiVixはい、そうです。 –

関連する問題