C#レプリケーションとクローン認識の概要2
前編の博文に続く
上記の場合、フォームのロードが完了するとhtとnewhashの値は同じである、hashtableは参照タイプであるため、hashtableを呼び出すときにhtのポインタをnewhashに付与し、newhashである.Add("qq",23);
その後、htとnewhashのポインタは同じアドレスを指すため、htの値も変化し、このときhtの変化が必要でなければclone()を使用することができ、
クローン:単純な字面では、新しく作成することを意味します.もちろん、このclone()はコピーで、アドレスと使用するメモリ空間が異なるに違いありません.そうすればいいのです.
Hashtable ht = new Hashtable(); ht.CopyTo(array,startindex);
またこれはhashtableを1次元配列にコピーし、具体的な作業でも応用することが多いので、
要するに、以上の状況に遭遇したらクローンを使えばいいのですが、hashtableの浅談はここまでです.文章は粗末で、文が不器用です.許してください.斧正を歓迎します.
private void Form1_Load(object sender, EventArgs e)
{
Hashtable ht = new Hashtable();
GetValue(ht);
}
private void GetValue(Hashtable ht)
{
Hashtable newhash = new Hashtable();
newhash = ht;
newhash.Add("qq", "33");
}
上記の場合、フォームのロードが完了するとhtとnewhashの値は同じである、hashtableは参照タイプであるため、hashtableを呼び出すときにhtのポインタをnewhashに付与し、newhashである.Add("qq",23);
その後、htとnewhashのポインタは同じアドレスを指すため、htの値も変化し、このときhtの変化が必要でなければclone()を使用することができ、
クローン:単純な字面では、新しく作成することを意味します.もちろん、このclone()はコピーで、アドレスと使用するメモリ空間が異なるに違いありません.そうすればいいのです.
Hashtable ht = new Hashtable(); ht.CopyTo(array,startindex);
またこれはhashtableを1次元配列にコピーし、具体的な作業でも応用することが多いので、
要するに、以上の状況に遭遇したらクローンを使えばいいのですが、hashtableの浅談はここまでです.文章は粗末で、文が不器用です.許してください.斧正を歓迎します.