ふらっとVisual C#,C♯,C#(初心者用) Part108
■ このスレッドは過去ログ倉庫に格納されています
0720デフォルトの名無しさん
2013/11/23(土) 17:20:58.76private void Form1_Load(.....省略)
{
DataTable data = new DataTable();
data.Columns.Add("商品",typeof(string));
data.Columns.Add("値段",typeof(int));
cmb商品選択.DataSource = data; //←cmb商品選択=コンボボックスコントロール
cmb商品選択.DisplayMember = "商品";
cmb商品選択.ValueMember = "値段";
}
↑このようにForm1_Loadで処理をした後、同じFormクラス内で
private void CommandButton1_Click(.........省略)
{
int 値段 = cmb商品選択.SelectedValue as int;
}
↑これで、選択された商品の値段を取得することができます。
質問
Form1_Load()内で、作成したDataTable dataは、ロードされている間はずっと生きてるんですか??それともデータがコピーされているのですか?
例えば、
private void Form1_Load(....省略){ int a = 1; }
と
private void CommandButton1_Click(.....省略){ int a = 2; }
があったとして、
それぞれのint aは、それぞれの関数の処理が終わったら、そこで解放されて値は保証されないのがC言語だったのですが....。
C#の場合は、cmb商品選択はメンバ変数として領域が確保されていますが、DataTable dataはメンバ関数内のローカル変数です。
なのに、データが保証されているのは、cmb商品選択.DataSource = data; で丸々コピーをしているのですか?
■ このスレッドは過去ログ倉庫に格納されています