2016-11-05 2 views
-1

Первое, что моя программа использует только от 3 до 5 шрифтов и только при создании PDF.Font dispose - Практическое руководство. Реализация шаблона Dispose Finalize (Visual Basic)

Я думаю, что нет необходимости удалять объекты шрифтов с точки зрения ресурсов, но для обучения и создания хорошей привычки это будет хорошо.

Я пытаюсь сделать

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

или

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

И я получаю "Утилизировать или IDisposable не является членом Font"

Для реализации Dispose Вариант I действительно нужно ВСЕ ВСЕ эту работу?

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

+1

'IDisposable' - это интерфейс. Для чего-то вроде Bitmap или Font, который его реализует, потребуется метод Dispose. Где вы пытаетесь это сделать, форму или класс? – Plutonix

+0

Только в форме Windows – fedeteka

ответ

1

Ваш код должен выглядеть, как вы уже предложили:

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

так Font типа имеет реализовать IDisposable интерфейс, как описано here.

+1

Ваш ответ относится к классу шрифтов 'System.Drawing'. Но, читая тег [tag: itext] вопроса OP, скорее всего, OP означает класс шрифта iTextSharp. – mkl

+0

@mkl Право !! Может быть, это причина, шрифт iText не является одноразовым? – fedeteka

+1

@fedeteka действительно, это не так, ср. источник: [Font.cs] (https://github.com/itext/itextsharp/blob/develop/src/core/iTextSharp/text/Font.cs). – mkl

Смежные вопросы