news 2026/6/16 12:14:34

45、C对象克隆、处置与终结器的深度剖析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
45、C对象克隆、处置与终结器的深度剖析

C#对象克隆、处置与终结器的深度剖析

1. 克隆对象相关问题

在C#和CLR中,对象存于堆上,通过引用访问。当把一个对象变量赋值给另一个时,实际上并没有复制对象,示例代码如下:

Object obj = new Object(); Object objCopy = obj;

执行上述代码后,objCopyobj引用的是同一个对象实例。

为了能复制对象,标准库定义了ICloneable接口。该接口只有一个Clone方法,返回一个对象引用,此引用代表复制的对象。然而,该接口文档未明确返回的复制是浅复制还是深复制,这给类设计者带来了困扰。

浅复制和深复制的区别在于对象是否包含对其他对象的引用。浅复制创建的副本中,包含的对象引用指向与原型相同的对象;深复制则会复制原型中所有包含的对象,复制结果与原型不共享底层对象。

接下来分析实现ICloneable接口的几种方式:
-仅含值类型对象的克隆:若对象仅包含值类型,可使用Object.MemberwiseClone实现Clone方法,示例代码如下:

using System; public sealed class Dimensions
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 16:11:30

54、深入探索 Lambda 表达式与 LINQ 的强大功能

深入探索 Lambda 表达式与 LINQ 的强大功能 1. 斐波那契数列与记忆化技术 在计算斐波那契数列相关内容时,有一段代码用于输出斐波那契数列的相关信息: "1/Fibonacci".PadRight(24), "Fibonacci Constant".PadRight(24) ); for( ulong i = 1; i <=…

作者头像 李华
网站建设 2026/6/15 14:58:34

WindiskWriter:macOS上制作Windows启动盘的终极指南 [特殊字符]

WindiskWriter&#xff1a;macOS上制作Windows启动盘的终极指南 &#x1f680; 【免费下载链接】windiskwriter &#x1f5a5; A macOS app that creates bootable USB drives for Windows. &#x1f6e0; Patches Windows 11 to bypass TPM and Secure Boot requirements. 项…

作者头像 李华
网站建设 2026/6/15 14:29:16

Python EXE解压神器:一键揭秘封装的Python代码

Python EXE解压神器&#xff1a;一键揭秘封装的Python代码 【免费下载链接】python-exe-unpacker 项目地址: https://gitcode.com/gh_mirrors/pyt/python-exe-unpacker 想要深入了解Python打包的可执行文件内部结构吗&#xff1f;Python EXE解压工具为您提供专业解决方…

作者头像 李华
网站建设 2026/6/15 19:59:06

PaddlePaddle学习率调度策略对比实验:哪种更有效?

PaddlePaddle学习率调度策略对比实验&#xff1a;哪种更有效&#xff1f; 在深度学习的实际训练中&#xff0c;一个看似微小的超参数——学习率&#xff0c;往往能决定模型最终是“收敛得漂亮”还是“跑飞了”。尤其当我们在使用像 BERT、ResNet 这类复杂结构时&#xff0c;固定…

作者头像 李华
网站建设 2026/6/15 21:05:12

UART引脚功能详解:全面讲解TX、RX与地线作用

一根线都不能少&#xff1a;深入理解UART通信中的TX、RX与GND你有没有遇到过这种情况&#xff1f;MCU代码写得严丝合缝&#xff0c;串口初始化也配置无误&#xff0c;可电脑端的串口助手就是收不到数据&#xff0c;或者满屏乱码&#xff0c;像极了某种外星文明的密文。别急着怀…

作者头像 李华
网站建设 2026/6/15 19:27:14

Charticulator数据可视化完全指南:从零开始打造专业级图表

Charticulator数据可视化完全指南&#xff1a;从零开始打造专业级图表 【免费下载链接】charticulator Interactive Layout-Aware Construction of Bespoke Charts 项目地址: https://gitcode.com/gh_mirrors/ch/charticulator 在当今数据驱动的时代&#xff0c;Chartic…

作者头像 李华