public class Person
{
public Person(string fName, string lName)
{
this.firstName = fName;
this.lastName = lName;
} public string firstName;
public string lastName;
}public class People
{
private Person[] _people;
public People(Person[] pArray)
{
_people = new Person[pArray.Length]; for (int i = 0; i < pArray.Length; i++)
{
_people[i] = pArray[i];
}
}
}
在People类的构造函数中,使用new运算符分配了内存,不过数组中的元素是引用类型的,貌似对于整个数组,是深拷贝,但对于数组中的每个元素是浅拷贝?这样有什么意义吗,为什么不进行彻底的深拷贝呢,或者直接在构造函数中把参数pArray赋给引用_people呢
{
public Person(string fName, string lName)
{
this.firstName = fName;
this.lastName = lName;
} public string firstName;
public string lastName;
}public class People
{
private Person[] _people;
public People(Person[] pArray)
{
_people = new Person[pArray.Length]; for (int i = 0; i < pArray.Length; i++)
{
_people[i] = pArray[i];
}
}
}
在People类的构造函数中,使用new运算符分配了内存,不过数组中的元素是引用类型的,貌似对于整个数组,是深拷贝,但对于数组中的每个元素是浅拷贝?这样有什么意义吗,为什么不进行彻底的深拷贝呢,或者直接在构造函数中把参数pArray赋给引用_people呢
解决方案 »
- (急,在线等)请问网页中如何直接打开excel?解决马上结贴
- C#如何提取一个数组中的元素不在另一数组中?
- 大家做C#时上传附件都用什么控件啊?要求可以限制上传文件类型,限制上传文件大小的
- c#中,用odbc连接dataGrid控件,太急了!!!
- 急!如何取得treeview的nodeid?
- C# 多线程问题!!~
- 正则表达式的问题?
- 有没有方法让VSStudio.net的recent projects菜单条数显示超过4条?老是不够用。
- C#工程中做了程序怎样发布到Win98中?
- 请教一个数据库的问题
- 为什么我的ini文件能写入相同的section
- 若我已知道文件在FTP上的路径,怎样找到并下载该文件,你代码实现
浅拷贝使用Object类MemberwiseClone实现
MemberwiseClone:创建当前 Object 的浅表副本
浅拷贝(shallow copy)对于引用类型对象中的值类型字段进行了逐位复制。赋值运算符只是把源对象的引用赋值给目的对象,两者引用同一个对象。
浅拷贝后的对象的值类型字段更改不会反映到源对象,而赋值运算后的对象的值类型字段更改会反映到源对象