Получи случайную криптовалюту за регистрацию!

Статические классы в C# Сегодня хотелось бы чуть подробнее ос | C# 1001 notes

Статические классы в C#

Сегодня хотелось бы чуть подробнее остановиться на теме статических классов.

Класс считается статическим если в его сигнатуре присутствует ключевое слово static, например:

public static class Math {
// ..
}

Такой класс содержит только статические члены (поля, методы, свойства и т.д.) и явно создать его экземпляр с помощью ключевого слова new у нас не получится.

Более того, на статический класс также накладываются следующие ограничения:

не может учавствовать в наследовании (служить базовым или являться наследником);

не может содержать члены с атрибутами доступа protected и protected internal;

не может иметь переопределённых (override) членов;

не может содержать конструкторы экземпляров (только static);

Областей применения у статических классов не так много. Они служат для:

группировки вспомогательных методов (так например Math агрегирует в себе математические операции, Console содержит поля и методы для взаимодействия с консолью, Utils как контейнер для наиболее часто используемых методов вашего приложения);

определения методов расширения (extension methods).

Хочу также порекомендовать неплохую на мой взгляд русскоязычную заметку по теме - Статика в C#.

#basics