Я стараюсь избегать использования статических классов в моем производственном коде, поскольку они не могут быть внедрены, нет контроля над инициализацией по умолчанию, и, наконец, вы не можете действительно очистить свои ресурсы неявно, так как нет деструктора для статических объектов. Кроме того, вы также не можете реализовать IDisposable для статического класса, поэтому звучит так, будто статические классы никогда не подходят для того, чтобы быть оберткой вокруг неуправляемых ресурсов ...
Совершенно очевидно, что синглтоны - лучшее решение для замены использования статических классов непосредственно в этом случае. Но мой вопрос - почему компилятор не поддерживает статическое разрушение, в конце концов, какое значение имеет сборщик мусора для отслеживания ссылок на статический объект по сравнению с экземпляром?