【问题标题】:Font dispose - How to: Implement the Dispose Finalize Pattern (Visual Basic)字体处置 - 如何:实现处置终结模式 (Visual Basic)
【发布时间】:2016-11-05 15:27:36
【问题描述】:

首先我的程序只使用 3 到 5 种字体,并且仅在我创建 PDF 时使用。

我认为从资源的角度来看,没有必要对 Fonts 对象进行 Dispose,但对于学习和养成良好的习惯来说,这将是一件好事。

我试着去做

If myFont1 IsNot Nothing Then
    myFont1.Dispose()
End If

If myFont1 IsNot Nothing Then
    myFont1.IDisposable.Dispose()
End If

我得到“Dispose 或 IDisposable 不是字体的成员”

要实现 Dispose 选项,我真的需要完成所有这些工作吗?

https://msdn.microsoft.com/en-us/library/s9bwddyx(v=vs.90).aspx

【问题讨论】:

  • IDisposable 是一个接口。实现它的位图或字体之类的东西需要有一个Dispose 方法。您要在哪里执行此操作,表单还是课程?
  • 仅在 Windows 窗体上

标签: vb.net itext


【解决方案1】:

您的代码应该看起来像您已经建议的那样:

If myFont1 IsNot Nothing Then
    myFont1.Dispose()
End If

因为Font 类型确实实现了IDisposable 接口,正如here 所解释的那样。

【讨论】:

  • 您的答案是指System.Drawing 字体类。但是阅读 OP 问题的标签 itext,很可能 OP 表示 iTextSharp 字体类。
  • @mkl 对!!也许这就是原因,iText字体不是一次性的?
  • @fedeteka 确实不是,参见。来源:Font.cs.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-13
  • 2015-09-06
  • 1970-01-01
  • 1970-01-01
  • 2013-12-14
  • 1970-01-01
相关资源
最近更新 更多