可能重复:
C#中私有构造函数的需求是什么?
嗨,
我已经在.NET中看到很多具有私有构造函数的类(我认为Stream就是其中之一).我什么时候想要为这样的类建模?
我一直在想,如果我的类没有内部状态/字段,那么我可以让它有一个私有构造函数.
这个想法我在正确的轨道上吗?我可以理解工厂的使用(我已经进入了几次临界点),但没有使用私有构造函数类.
谢谢
私有构造函数通常用于:
我在.NET中看到过很多具有私有构造函数的类(我认为Stream是其中之一)
System.IO.Stream
它不是任何一个例子 - 它有一个受保护的构造函数(至少从.NET 4.0开始).由于它是一个抽象类,因此拥有公共构造函数是没有意义的.
我一直在想,如果我的类没有内部状态/字段,那么我可以让它有一个私有构造函数.
在这种情况下,请考虑创建一个静态类,根本不提供任何实例构造函数(静态类不能具有实例构造函数,因为无法创建实例).当然,有些情况下,尽管缺少任何状态,例如当类必须实现接口时,这可能不合适.