为什么使用静态类?

我对静态类和静态方法有疑问。 从MSDN我理解“静态类和类成员用于创建可以在不创建类实例的情况下访问的数据和函数。”

因此,如果我们不想将一个类与一个实例相关联,我们将把它作为静态。 这是唯一的优势吗? 任何人都可以指导我在静态类的实时场景。

在课堂上的一些时间(不是静态的)我发现了静态方法。 静态方法在实际中给出了多实例方法的优点/性能优势。

对于实用类,它们很棒。 如你所述,它们与全球状态相似。 因此对于没有状态的类,为了性能优势,类应该是静态的。

另一方面,静态类很难测试(如果它们包含状态)。 多态性和其他OO概念也丢失了。

明智地使用。

static关键字应用于类是C#语言约定,它对CLR没有任何特殊意义。 它只是确保所有成员都是静态的,并且您不能意外地使用new关键字创建该类的实例。

这个线程讨论了静态方法的优点。

IMO静态类是伪装的过程式编程。 不一定是坏事,但它不是非常OOPly。 注意function分解反模式 。

静态类非常适合定义静态方法。 这是经典的“实用类”方法。 但是,要非常小心地在静态类中存储状态(即定义字段)。 在我们的multithreading世界中,除非您同步访问静态字段,否则这可能导致不可预测的程序行为。

静态属性主要用于介绍运行代码的Context。 您可以在每个.NET堆栈中找到对此的确认。
ASP.NET – HttpContext.Current
线程 – Thread.CurrentThread
WinForms –WindowsFormsSynchronizationContext.Current
WPF – 调度程序
等等
对我来说静态类只是实用方法的容器。

静态类全局化特定变量,使代码在处理过程中更容易处理。 因此,在基本级别,我们更喜欢使用静态类。