【.NET基础】——ShadowCopy And DeepCopy
在介绍.NET平台下的ShadowCopy And DeepCopy之前,我们先来了解两个概念——值类型 and 引用类型。
值类型 and 引用类型
在CLR中支持两种类型,值类型 and 引用类型。很明显从图中可以看出两者是独立出来的,在.NET层次结构中的
位置不同,那其分配内存的方式也是不同的。
引用类型:从托管堆中分配内存空间来保存它的实例,然后通过一个类似指针的变量来引用它。
值类型:轻量级变量类型,主要从线程的堆栈中分配内存空间,不需要变量来引用。
区别:
(1)引用类型继承于System.Object类,而值类型继承于System.Object的子类System.ValueType类;
(2)值类型有两种表现形式:拆箱和装箱。而引用类型只有装箱;
(3)值类型不可以被继承,也不可以继承其他类型,不可以有虚方法,方法不可以被重写。而引用类型这些都可以;
(4)引用类型初始化时Null,而值类型初始化为0;
(5)值类型变量进行赋值时,所有成员的值都被复制,而引用类型变量赋值时,只是简单地复制指向一个对象
的引用。
上面简单介绍了一下值类型 and 引用类型。由于值类型进行复制时,所有成员都被复制,就不在这里讨论了,
本篇博客主要介绍引用类型的ShadowCopy And DeepCopy。
ShadowCopy And DeepCopy
ShadowCopy
DeepCopy
总结
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。