В языке программирования C# ключевое слово "static" может использоваться в различных контекстах, таких как переменные, методы, свойства и классы. Ниже приведены основные способы использования "static" в C#
Статические поля
Статические поля - это переменные, общие для всех экземпляров класса. Они объявляются с помощью ключевого слова static. Значение статического поля сохраняется между вызовами и доступно для всех экземпляров класса.
В примере (2) мы определили класс MyClass, у которого есть статическое поле count, хранящее количество созданных экземпляров класса. Метод MyClass() инкрементирует count при создании нового экземпляра класса, а свойство Count предоставляет доступ к значению count.
Статические методы
Статические методы - это методы, которые могут вызываться без создания экземпляра класса. Они объявляются с помощью ключевого слова static и не могут обращаться к нестатическим полям или методам экземпляра класса.
В примере (1) мы определили класс MathUtils с одним статическим методом IsPositive, который проверяет, является ли переданное число положительным. Метод IsPositive вызывается без создания экземпляра класса.
Статические свойства
Статические свойства - это свойства, которые доступны без создания экземпляра класса. Они объявляются с помощью ключевого слова static.
Статические свойства могут использоваться для доступа к статическим переменным. Они обычно используются для предоставления доступа к глобальным данным, которые должны быть доступны из разных частей программы
В примере (2) мы определили класс MathUtils с одним статическим свойством Pi, которое возвращает значение числа Пи. Свойство Pi может быть доступно без создания экземпляра класса.
Статические конструкторы
Статический конструктор - это специальный метод, который вызывается автоматически один раз при первом обращении к классу. Он объявляется с помощью ключевого слова static и не принимает параметров.
В этом примере мы определили класс MyClass с одним статическим конструктором и одним конструктором экземпляра. При первом обращении к классу вызывается статический конструктор, а затем конструктор экземпляра. При создании второго объекта класса MyClass вызывается только конструктор экземпляра.
Статические классы
Статический класс - это класс, у которого только статические элементы, и он не может быть производным от другого класса. Статические классы могут содержать только статические поля, методы, свойства и события.
В примере (3) мы определили статический класс MathUtils с двумя статическими элементами - свойством Pi и методом Factorial. Статические классы могут использоваться для группировки связанных операций в одном месте и для предоставления функциональности, которая не зависит от конкретного объекта.
Заключение
В языке C# ключевое слово static используется для создания элементов, которые могут быть общими для всех экземпляров класса, не требующих создания экземпляра для их использования, или для определения элементов, которые должны сохранять свое значение между вызовами. Это могут быть статические поля, методы, свойства, конструкторы и классы. Статические элементы могут быть полезны для оптимизации памяти и упрощения кода.