Avatar ·

Wann man statische Klassen in C# verwenden sollte und warum sie nicht immer schlecht sind?

Hallo zusammen! Ich bin ein Anfänger in C#-Entwicklung (lerne seit etwa 4 Monaten). Ich habe die Grundlagen der OOP scheinbar verstanden: Klassen, Objekte, Vererbung, Polymorphismus. Aber es gibt ein Thema, das mich verwirrt – statische Klassen. In Lehrbeispielen sehe ich oft, dass sie für Helper oder Konstanten verwendet werden. Zum Beispiel habe ich eine solche Klasse für mathematische Operationen geschrieben: ```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; } } ``` Aber dann habe ich in Foren gelesen, dass statische Klassen die OOP-Prinzipien verletzen (insbesondere Dependency Injection und Testbarkeit) und man sie besser vermeiden sollte. Angeblich sei das "prozeduraler Code in einem objektorientierten Wrapper". Jetzt bin ich verwirrt. Wann sollte man sie wirklich verwenden? Und wann ist es besser, eine normale Klasse mit Instanzmethoden zu erstellen? Gibt es Situationen, in denen