Объявление статического класса документирует ваше намерение, чтобы этот класс был набором статических функций, и любой, добавляющий члены экземпляра, получит ошибку компиляции.
Нестатический класс со статическими членами обычно указывает на то, что класс предназначен для создания экземпляра в некоторый момент. Статические методы этих классов обычно делают одну из двух вещей:
- Предоставить фабричный метод для создания экземпляра этого типа;
- Предоставляет вспомогательные функции, для которых не требуется экземпляр типа;
Также, как уже упоминалось, методы расширения могут быть объявлены только для статического класса.