В 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);
}
}
Когда использовать
- Статические классы подходят для создания вспомогательных утилит и методов, которые не требуют хранения состояния.
- Статические методы удобны, когда метод не зависит от данных конкретного объекта и должен быть доступен глобально.