密封类和带有私有构造函数的密封类之间的区别

vik*_*kky 2 .net c# constructor

有什么区别吗

public sealed class A
{

} 

public sealed class B
{
     private B()
     {}
} 
Run Code Online (Sandbox Code Playgroud)

那么在密封类中使用私有构造函数的原因是什么

Jam*_*iec 5

这两件事是相切的,也就是说,一件事与另一件事无关。

  • 密封类不能被继承
  • 具有私有构造函数的类不能公开实例化。

那么在密封类中使用私有构造函数的原因是什么

很可能是Singleton的实现。继承它是没有意义的(所以是它的sealed),并且您不希望开发人员实例化新实例(您希望他们使用 Singleton 实例)