Cuándo usar clases estáticas en C# y por qué no siempre son malas
¡Hola a todos! Soy un desarrollador principiante de C# (estudiando alrededor de 4 meses). Parece que he entendido los conceptos básicos de OOP: clases, objetos, herencia, polimorfismo. Pero hay un tema que me confunde: las clases estáticas.
En ejemplos de estudio, a menudo veo que se usan para helpers o constantes. Por ejemplo, escribí esta clase para trabajar con operaciones matemáticas:
```csharp
public static class MathHelper
{
public static double CircleArea(double radius)
{
return Math.PI * radius * radius;
}
public static double CelsiusToFahrenheit(double celsius)
{
return celsius * 9 / 5 + 32;
}
}
```
Pero luego leí en foros que las clases estáticas violan los principios de OOP (en particular, Dependency Injection y testabilidad), y que es mejor evitarlas. Dicen que es "código procedural en un envoltorio orientado a objetos".
Ahora estoy confundido. ¿Cuándo realmente debería usarlas? ¿Y cuándo es mejor crear una clase normal con métodos de instancia? ¿Hay situaciones donde una clase estática es