浅拷贝示例:
//
// 功能: 学习一下深拷贝..
//
//
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();
}
}
}