深拷贝

来源:互联网 发布:淘宝模特快速拍照视频 编辑:程序博客网 时间:2024/05/01 11:20

浅拷贝示例:

//////////////////////////////////////////////////////////////////////////// 功能: 学习一下深拷贝.. // //////////////////////////////////////////////////////////////////////////using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Diagnostics; // 调试using System.Collections;namespace benben_CSharp_first{    class CDemo    {        public int[] intArray = new int[] { 0, 1, 2, 3, 4 };        public void showElement()        {            foreach (int iValue in intArray)            {                Console.Write("{0}  ", iValue);            }            Console.WriteLine();        }    }       class Test    {        static void Main()        {            CDemo d_1 = new CDemo();            CDemo d_2 = d_1;            d_1.showElement();            d_2.showElement();            // 修改 d_1 后再打印元素            d_1.intArray[0] = 100;            d_1.showElement();            d_2.showElement(); // 注意这一行的打印输出也和上一行一样..                 Console.ReadKey();                }    }}


 

深拷贝示例:

//深拷贝示例: //////////////////////////////////////////////////////////////////////////// 功能: 学习一下深拷贝.. // //////////////////////////////////////////////////////////////////////////

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Diagnostics; // 调试using System.Collections;

namespace benben_CSharp_first{    class CDemo //: ICloneable    {        public int[] intArray = new int[] { 0, 1, 2, 3, 4 };

        public void showElement()        {            foreach (int iValue in intArray)            {

                Console.Write("{0}  ", iValue);            }            Console.WriteLine();        }

        public object Clone()        {            CDemo cloner = new CDemo();            Array.Copy(this.intArray, cloner.intArray, this.intArray.Length);            return cloner;                    }

    }

    class Test    {        static void Main()        {            CDemo d_1 = new CDemo();            CDemo d_2 = (CDemo)d_1.Clone();            d_1.showElement();            d_2.showElement();

            // 修改 d_1 后再打印元素            d_1.intArray[0] = 100;            d_1.showElement();            d_2.showElement(); // 注意这一行的打印输出也和上一行不一样. 说明是深拷贝.    

            Console.ReadKey();        }    }}


 

 

 

原创粉丝点击