このサイト(http://csharp.sevendays-study.com/ex-day2.html)に下記のようなスクリプトがありますが
このスクリプトで少し疑問に思う事があります。。
ーーーーー質問内容ーーーーーーーーーーーーーーーーーーーーーーーーー
program.csのfor文でDateのインスタンスを作成していますが
作成した直後にData.ShowNumber(); が呼び出され
その後にDataクラスのコンストラクタが読み込まれていますよね・・
これってつまり、コンストラクタの読み込み優先順序は、
for文内のブロック式よりも低く、for文1回分のループよりも高い
とゆう解釈でよろしいのでしょうか?
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
###プロジェクトSampleEx201/Data.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SampleEx201
{
class Data
{
// Dataオブジェクトの数
private static int num = 0;
// データの値
private int id;
// コンストラクタ(引数つき)
public Data(int id)
{
this.id = id;
num++;
Console.WriteLine("値:{0} 数:{1}", this.id, num);
}
// オブジェクトの数を取得
public static void ShowNumber()
{
Console.WriteLine("Dataオブジェクトの数:{0}", num);
}
}
}
###Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SampleEx201
{
class Program
{
static void Main(string[] args)
{
// Dataクラスを3つ作る
Data[] d = new Data[2];
// Dataのインスタンスの数を表示
Data.ShowNumber();
// 一つ目のインスタンスを生成
for (int i = 0; i < d.Length; i++)
{
d[i] = new Data(i*100);
// Dataのインスタンスを生成
Data.ShowNumber();
}
}
}
}
###実行結果
Dataオブジェクトの数:0
値:0 数:1
Dataオブジェクトの数:1
値:100 数:2
Dataオブジェクトの数:2
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/12/30 07:33
2015/12/30 07:55