重新分配一次性对象变量是如何工作的?

2023-11-27

在 C# 中,当用新对象重新分配一次性对象变量时,它在内存中如何工作?旧对象占用的内存空间会被新对象覆盖吗?或者我还需要打电话吗Dispose()释放它使用的资源?

DisposableThing thing;

thing = new DisposableThing();
//....do stuff
//thing.Dispose();
thing = new DisposableThing();

在这种情况下,您有一个插槽/引用和两个实例IDisposable目的。这两个实例都必须独立处理。编译器不会插入任何魔法IDisposable。它只会更改引用指向的实例

一个好的模式如下

using (thing = new DisposableThing()) {
  // ... do stuff
}

thing = new DisposableThing();

理想情况下,第二次使用thing也应该在一个时间内完成using block

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

重新分配一次性对象变量是如何工作的? 的相关文章

随机推荐

  • faces-redirect 和后退按钮导致其他链接无法正常工作

    我有一个关于面孔导航的问题 所以我有一个页面 它采用请求参数来加载特定用户 此页面显示 commandLink 列表 单击该列表后 将使用隐式导航重定向到另一个页面 通过调用 preRenderView 中的方法来加载用户 我们重定向到的页
  • 如何将协作者添加到 Firebase 应用程序?

    在最新版本的Firebase 在 Google I O 2016 期间宣布 如何将我想要的其他人添加到我的项目或应用程序中collaborate和 我通过以下途径认识了 IAM 角色Settings gt Permissions 这是正确的
  • Bootstrap Tour 不记得我离开的地方

    当我到达第二页时 我在多页游览中启动 Bootstrap Tour 时遇到问题 我以点击事件开始游览localStorage被设定为false 游览从单击事件开始正常 但是当我转到游览的第二步并加载新页面时 游览不会从中断处继续 如何在这个
  • 使 WCHAR 为空终止

    我有这个 WCHAR 文件名 1 作为函数的返回值 它是 sys 32 函数 因此我无法更改返回的类型 我需要使 fileName 以 null 结尾 因此我尝试将 0 附加到它 但似乎没有任何效果 一旦我得到一个以 null 结尾的 WC
  • Jasper Reports 使用 comparatorExpression 进行交叉表排序

    我正在尝试根据某些自定义方案对交叉表中的动态列进行排序 在文档中 我发现提到了comparatorExpression 交叉表组存储桶比较器表达式 这个表达式的结果是 用于按升序或降序对存储桶进行排序 如果没有比较器 指定表达式时 将使用自
  • 创建/更新文档日期的摄取管道

    我正在尝试实现类似于 Mysql 的行为 为我通过 ES 管道索引的每个文档的元数据添加 insert at updated at 我的管道是这样的 description Adds createdAt and updatedAt styl
  • 如何访问和处理嵌套对象、数组或 JSON?

    我有一个包含对象和数组的嵌套数据结构 如何提取信息 即访问特定或多个值 或键 例如 var data code 42 items id 1 name foo id 2 name bar 我怎样才能访问name中的第二项items 预赛 Ja
  • 如何使用 C# 从 MS Office 文档中提取文本

    我试图使用 C 从 MS Word doc docx Excel 和 Powerpoint 中提取文本 字符串 在哪里可以找到免费且简单的 Net 库来阅读 MS Office 文档 我尝试使用 NPOI 但没有获得有关如何使用 NPOI
  • 为什么 printf("%f",0);给出未定义的行为?

    该声明 printf f n 0 0f 打印 0 然而 该声明 printf f n 0 打印随机值 我意识到我表现出了某种未定义的行为 但我无法具体弄清楚为什么 所有位均为 0 的浮点值仍然有效float值为 0 float and in
  • 为什么我的 WSDL 仍然显示带有 http 位置值的基本 http 绑定?

    我启用了 https 绑定 但我的 WSDL 的肥皂地址为 http 有什么想法吗 谢谢
  • 糟糕的 DotNetNuke 性能

    我参与了一个项目 使用DotNetNuke 版本 05 01 04 社区版 我们正在使用它构建新的 Intranet 但性能很糟糕 我们有五个人向其添加页面和内容 每 15 30 秒一次他们经历了 10 秒的停顿或在系统继续并加载下一个屏幕
  • libgmalloc 如何与二级命名空间一起工作?

    我想编写自己的 malloc free 函数以进行调试 文档说我必须将 DYLD FORCE FLAT NAMESPACE 与 DYLD INSERT LIBRARIES 一起使用 但同时libgmalloc文章明确指出 libgmallo
  • 在应用程序启动时从故事板中选择替代的第一个视图控制器

    我刚刚开始 iOS 编程 到目前为止 我在这里找到的教程和答案对我的前进有很大帮助 然而 这个特殊的问题整夜困扰着我 我找不到 感觉正确 的答案 我正在编写一个连接到远程服务的应用程序 用户需要登录才能使用它 当他们开始使用应用程序时 他们
  • 如何在 read() 函数调用中实现超时?

    我想使用串行com端口进行通信 并且我想在每次调用时实现超时read 函数调用 int filedesc open dev ttyS0 O RDWR read filedesc buff len EDIT 我使用的是 Linux 操作系统
  • MATLAB:如何在 parfor 中设置随机种子以产生与 Serial for 相同的结果?

    我设置了以下最小示例 rng 0 randseedoffset random unid 10 5 1 t cell 10 1 for i 1 10 rng randseedoffset i t i random unid 1000 end
  • XML::LibXML 中实现了哪个版本的 XPath?

    有谁知道 XML LibMXL 中实现了哪个版本的 XPath 规范 或者更重要的是 在哪里可以找到可在 LibXML 中使用的 XPath 函数的描述 例如 我尝试过类似的东西 dcDOM gt findvalue dc identifi
  • C 有标准的 ABI 吗?

    来自讨论别的地方 C 没有标准的ABI 应用程序二进制接口 但C也没有 对吗 在任何给定的平台上它几乎都是如此 如果缺乏一种语言 它就无法作为跨语言交流的通用语言 您对此有何看法 C 没有定义 ABI 事实上 它竭尽全力避免定义 ABI 像
  • 如何在sklearn中对分类变量进行编码?

    我正在尝试使用 UCI 存储库中的汽车评估数据集 我想知道是否有一种便捷的方法可以在 sklearn 中对分类变量进行二值化 一种方法是使用 LabelBinarizer 的 DictVectorizer 但在这里我得到了 k 个不同的特征
  • 使用 HBase 进行行分页

    有没有办法在HBase中基于rowkey进行分页 我想要和我一样的效果SQL with SELECT FROM table LIMIT 10 OFFSET 10 如果这是不可能的 我应该如何最好地设计我的行键以进行适当的查询 您可以利用页面
  • 重新分配一次性对象变量是如何工作的?

    在 C 中 当用新对象重新分配一次性对象变量时 它在内存中如何工作 旧对象占用的内存空间会被新对象覆盖吗 或者我还需要打电话吗Dispose 释放它使用的资源 DisposableThing thing thing new Disposab