C#で配列を宣言するだけでは配列は作成されない?宣言と初期化の違いを解説
C#において、配列の宣言だけではメモリ上に配列は初期化されません。配列変数を初期化して初めて、その配列に値を代入できるようになります。
宣言だけでは配列は作成されない
以下のコードは単なる「宣言」であり、この時点ではまだ配列は作成されていません。
int[] id;
実際に整数型の配列を作成するには、次のように記述します。配列は参照型であるため、インスタンスを生成するには new キーワードを使用する必要があります。
int[] id = new int[5] {};サンプルコード
それでは、配列の宣言・生成・初期化・出力までの一連の流れを見てみましょう。
using System;
namespace ArrayApplication {
public class MyArray {
public static void Main(string[] args) {
int[] n = new int[5];
int i, j;
/* 配列 n の各要素を初期化 */
for (i = 0; i < 5; i++) {
n[i] = i + 10;
}
/* 各配列要素の値を出力 */
for (j = 0; j < 5; j++) {
Console.WriteLine("Element[{0}] = {1}", j, n[j]);
}
}
}
}実行結果
Element[0] = 10 Element[1] = 11 Element[2] = 12 Element[3] = 13 Element[4] = 14
ポイントまとめ
- 宣言(
int[] id;)は変数の型情報を定義するだけで、メモリ上に配列本体は確保されません。 - 配列は参照型なので、
newキーワードでインスタンスを生成する必要があります。 new int[5]のようにサイズを指定すると、その要素数分の領域が確保され、既定値(intの場合は0)で初期化されます。
-
C#でフォルダが存在しない場合に新しく作成する方法
ディレクトリを作成するには、まずC#でSystem.IO名前空間をインポートする必要があります。この名前空間は、ディレクトリの作成・コピー・移動・削除などを行うための静的メソッドを提供するライブラリです。また、C#でファイル操作を行う前に、対象のディレクトリが存在するかどうかを必ず確認することをお勧めします。フォルダが存在しない状態で操作を行うと、実行時に例外がスローされてしまうためです。例1:単一フォルダを作成するusing System; using System.IO; namespace DemoApplication { class Program { &n
-
C#のArray.Rankプロパティとは?配列の次元数を取得する方法を解説
C#では、Rankプロパティを使うことで、配列が持つ次元数(ディメンションの数)を簡単に取得できます。この記事では、Rankプロパティの基本的な使い方と、あわせて覚えておきたい関連メソッドについて解説します。Rankプロパティで次元数を取得する配列の次元数を調べるには、以下のようにRankプロパティを使用します。arr.Rankここで、arrは対象となる配列です。例えば、次のような2次元配列の場合、Rankは「2」を返します。int[] arr = new int[5,5];GetLengthメソッドで行数・列数を取得する配列の各行・各列の要素数(長さ)を取得したい場合は、GetLengthメ