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