Статические (static) классы и методы в C#

В C# статические классы и статические методы используются для организации кода, который не требует создания экземпляра объекта. Они обеспечивают удобный способ объединения функциональности, не зависящей от состояния конкретного объекта.

Статический класс

Статический класс (static class) — это класс, который не может иметь экземпляров и может содержать только статические члены.

Особенности статического класса:

  • Нельзя создать экземпляр такого класса с помощью new.
  • Все методы и поля внутри класса должны быть статическими.
  • Не может реализовывать интерфейсы или наследовать другие классы (кроме object).
  • Используется для объединения вспомогательных функций, констант и утилитарных методов.

Пример статического класса:

static class MathHelper
{
    public static double Square(double number)
    {
        return number * number;
    }
}

class Program
{
    static void Main()
    {
        double result = MathHelper.Square(5);
        Console.WriteLine(result); // 25
    }
}

Статический метод

Статический метод (static method) — это метод, который принадлежит классу, а не конкретному экземпляру. Такие методы могут вызываться без создания объекта.

Особенности статического метода:

  • Вызывается через имя класса.
  • Не имеет доступа к нестатическим членам класса.
  • Может использоваться в любом классе, если он имеет public модификатор.
  • Часто применяется для вспомогательных операций и фабричных методов.

Пример статического метода:

class Calculator
{
    public static int Add(int a, int b)
    {
        return a + b;
    }
}

class Program
{
    static void Main()
    {
        int sum = Calculator.Add(3, 4);
        Console.WriteLine(sum);
    }
}

Когда использовать

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