c# - 如何处理我们没有引用的一次性元素?

标签 c# .net idisposable garbage-collection

如果你有画笔和笔:

Brush b = new SolidBrush(color);
Pen p = new Pen(b);

并像这样处理它们:

b.Dispose();
p.Dispose();

如果是,你会如何处理它:

Pen p = CreatePenFromColor(color) 哪个会为您创建画笔和笔?我不能在这个方法中处理画笔,对吗?

这是一种不能用于一次性元素的方法吗?

编辑:我的意思是,您如何处理 BRUSH?

最佳答案

处理 Brush 实例是 CreatePenFromColor 方法的工作。乍一看并不明显,但如果深入研究 Pen 类的实现,您会发现它并没有保留传入的 Brush 实例。相反,它只是用它来计算一些值。因此,Brush 实例没有理由在调用 CreatePenFromColor 之后继续存在,并且该方法应该处理该实例。

关于c# - 如何处理我们没有引用的一次性元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1539503/

相关文章:

c# - ASP.NET 站点和 SharePoint 站点有什么区别?

c# - WinForms 开发人员在 ASP.Net 面试中应该了解什么?

c# - session变量赋值给数据表和创建对象引用问题?

异步函数调用异步函数的 C# 性能影响

c# - 在我的终结器中处理我的 System.IDisposable 对象

c# - 正在运行的BackgroundWorker的处理

c# - 我如何打开一个新窗口而不是新选项卡或弹出窗口,而是在 c# 中从代码后面单击按钮时打开一个新窗口

c# - 如何获得收件箱文件夹和项目计数?

c# - MSBuild 在缺少项目文件时强制编译失败

c# - 在处置类实例时,我是否需要显式处置其所有 IDisposable 成员?