Avatar ·

何时在C#中使用静态类以及为什么它们并不总是糟糕的?

大家好!我是一名初学C#的开发者(学习了大约4个月)。我似乎已经掌握了OOP的基础知识:类、对象、继承、多态。但有一个主题让我感到困惑——静态类。 在教学示例中,我经常看到它们被用于helper或常量。例如,我编写了这样一个用于数学运算的类: ```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; } } ``` 但后来我在论坛上读到,静态类违反了OOP原则(特别是Dependency Injection和可测试性),最好避免使用。有人说这是“对象包装中的过程式代码”。 现在我感到困惑。什么时候真的应该使用它们?什么时候最好使用带有实例方法的普通类?有没有一些情况,其中...