(1) Я прочитал много вопросов о IDisposable, где ответы не рекомендуют использовать Finalize, если вам действительно не нужно из-за связанного с этим процесса времени.
Я не видел, насколько это стоит и как часто это оплачивается. Каждые миллисекунды? второй? час, день и т. д.Стоимость финализации в .Net
(2) Также мне кажется, что Finalize удобен, когда не всегда известно, может ли объект быть удален. Например, класс шрифта рамки. Элемент управления не может избавиться от него, потому что он не знает, является ли общий шрифт. Шрифт, как правило, создается во время разработки, поэтому пользователь не будет знать, чтобы его утилизировать, поэтому завершите работу, чтобы, наконец, избавиться от него, когда ссылок нет. Это правильное впечатление?
Прочитано: http://msdn.microsoft.com/en-us/library/ms973837.aspx – 2010-06-15 14:20:00
Что касается класса «Font», он фактически используется для двух совершенно разных целей в .net; он инкапсулирует набор информации о шрифте (семейство, размер, стиль и т. д.), а также инкапсулирует объект поиска GDI. Свойство 'Font' элемента управления интересует только прежняя информация; элементам управления будет все равно, если их свойство 'Font' установлено на шрифт, который является' Dispose'd (даже если 'Dispose' возникает до того, как свойство будет установлено!) Следовательно, если вы хотите иметь поле, которое будет использоваться для установки свойств 'Font' управления, можно было создать« Шрифт »для него, а затем ... – supercat
... сразу же« Dispose ». Скорее всего, несколько странный образец, но в корне указывающий на тот факт, что .net должен был использовать класс или структуру 'FontInfo' для элемента управления' Font'. – supercat