关于C#:静态类的优缺点

Static classes pros and cons

本问题已经有最佳答案,请猛点这里访问。

我是一个C++程序员,可以切换到C语言。我说过不使用静态类。我理解在C中,如果类只有静态成员,那么它应该是静态的。(我的类只有静态成员)你能解释一下使用静态类会有什么问题吗?我们什么时候真正应该使用它们?

谢谢


静态类与非静态类没有区别,除了不能实例化静态类(当然,因为它们是静态的),而且这个静态类不能利用诸如继承(它不能在C中被子类化)之类的很酷的OOP特性。

当一个静态类包含静态成员时,您必须注意的主要问题是,如果多个线程使用静态成员,则使该类成为线程安全的。

Can you please explain me what could be a problem using static classes? When we really should use them?

如果您的类只公开静态成员,那么您可以将其设置为静态类,但前提是您确定不需要此类的实例。实际上,使用静态类绝对没有问题,只需确保线程安全(如果需要),并确保它符合系统的设计。


主要原因是有时(但不总是),最好使用单级类,因为单级类可以实现接口。


静态类与非静态类基本相同,但有一个区别:静态类不能实例化。

http://msdn.microsoft.com/en-us/library/79b3xss3.aspx

同时检查此链接:

何时在C中使用静态类#