C#レプリケーションとクローン認識の概要2


前編の博文に続く
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の浅談はここまでです.文章は粗末で、文が不器用です.許してください.斧正を歓迎します.