确保A类只能由B类创建

Tom*_*ies 1 c# constructor factory

我已经在SO(和其他地方)上阅读了关于这个主题的一些讨论,但没有能够收集到明确的答案.

我想确保给定的类A只能由特定的类B创建.在C++中,我将构建一个私有的构造函数,并将B指定为朋友.现在只有B才能创造A.

在C#中这样做的惯用方法是什么,如果确实有一个呢?

Ode*_*ded 6

您可以使用私有内部类.

但是,这用途有限.

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

  • 如果私有类A实现了公共接口,那么您可以将该接口公开给外部世界. (4认同)