Сегодня хотелось бы чуть подробнее остановиться на теме статических классов.
Класс считается статическим если в его сигнатуре присутствует ключевое слово
static, например:public static class Math {
// ..
}Такой класс содержит только статические члены (поля, методы, свойства и т.д.) и явно создать его экземпляр с помощью ключевого слова
new у нас не получится.Более того, на статический класс также накладываются следующие ограничения:
🔸 не может учавствовать в наследовании (служить базовым или являться наследником);
🔸 не может содержать члены с атрибутами доступа
protected и protected internal;🔸 не может иметь переопределённых (
override) членов;🔸 не может содержать конструкторы экземпляров (только
static);Областей применения у статических классов не так много. Они служат для:
🔸 группировки вспомогательных методов (так например
Math агрегирует в себе математические операции, Console содержит поля и методы для взаимодействия с консолью, Utils как контейнер для наиболее часто используемых методов вашего приложения);🔸 определения методов расширения (extension methods).
Хочу также порекомендовать неплохую на мой взгляд русскоязычную заметку по теме - Статика в C#.
#basics