Джеффри Рихтер в своей книге CLR через C# (как видно из онлайн-примера в главе Работа с типами, требующими специальной очистки ) указывает на следующее:
Кроме того, CLR не дает никаких гарантий относительно порядка вызова методов Finalize. Поэтому вам следует избегать написания метода Finalize, который обращается к другим объектам, тип которых определяет метод Finalize; те другие объекты, возможно, уже были завершены. Однако вполне нормально обращаться к экземплярам типа значения или объектам ссылочного типа, которые не определяют метод Finalize. Вам также необходимо соблюдать осторожность при вызове методов stati c, поскольку эти методы могут внутренне обращаться к объектам, которые были завершены, что приводит к тому, что поведение метода stati c становится непредсказуемым .
Я все понимаю из приведенной выше цитаты, но предложение выделено жирным шрифтом. Как может метод stati c использовать завершенный объект внутренне, если он может использовать только другие элементы stati c, которые ссылаются на объекты, которые не могут быть завершены из-за их времени жизни, и почему безопасно вызывать методы экземпляра? Извините, я могу ошибаться в своих выводах, поэтому буду благодарен за любые объяснения вопроса. Заранее спасибо.