未分類

C# クラス変数の初期化は自動的に行われる

準備

(なし)

デザイン

1. フォーム (Form1) にボタン (button1) を配置します。
2. フォーム (Form1) にリストボックス (listBox1) を配置します。

サンプルコード (C#)

// 名前空間の追加
// (なし)

// プライベート変数の宣言
int i;
double d;
bool b;
string s;

// コード
private void button1_Click(object sender, EventArgs e)
{
  listBox1.Items.Add(i.ToString());
  listBox1.Items.Add(d.ToString());
  listBox1.Items.Add(b.ToString());
  
  if (String.IsNullOrEmpty(s))
  {
    listBox1.Items.Add("Null or Empty");
  }
  else
  {
    listBox1.Items.Add(s);
  }
}

解説

int, double, bool, string の変数の内容が表示します。int と double は 0 で初期化されていることが分かります。bool は false で初期化されています。string は一見するとどのように初期化されているかは不明ですが、IsNullOrEmpty メソッドで判定すると、True となりますので、Null または Empty です。念のため、MessageBox.Show の箇所でブレークポイントを設定して、内容をイミディエイトウィンドウで確認したところ、null が入っていました。

尚、自動的に初期化されるのは、クラス変数のみです。メソッド内で変数を宣言した場合には必ず明示的な初期化が必要です。

結果

動作確認環境

Visual Studio 2015 Professional (C# 6.0)

-未分類