可能重复:
What is the use of making constructor private in a class?为什么有一个私有构造
为什么你会拥有一个私人的构造?
他们有什么好处,什么时候以及为什么要在公共构造函数上使用它。
可能重复:
What is the use of making constructor private in a class?为什么有一个私有构造
为什么你会拥有一个私人的构造?
他们有什么好处,什么时候以及为什么要在公共构造函数上使用它。
(由于欺骗不是特定于C#)
class Foo
{
private Foo() { /* common ctor code */ }
public Foo(int x) : this() { /* from int */ }
protected Foo(string s) : this() { /* from string */ }
}
当你不想让你的类通过new
运算符实例化时,你有一个私有构造函数。
它可以通过静态工厂方法或其他机制实例化。
因此,当你调用一个类的静态方法并返回时,可以使用它,并且作为类的实例化对象。 –
即使这是一个面试问题,我认为大多数公司都足够聪明,可以提出更多与此相关的问题,看看他是否理解他所说的话。至少,这发生在我身上:)另外,是的+1静态工厂和控制创建是私有构造函数最有用的场景。另外在C++中很适合创建C#的“静态类”。 – dowhilefor
我确定有很多原因,但跳出来的第一个原因是,如果您创建的是单例对象,您不需要公共构造函数就可以使用私有对象。
私有构造函数意味着该类只能在其自身内部创建。
它通常与static
工厂方法一起使用来创建类。
这迫使人们只通过工厂方法实例化类。
@JohnSaunders是啊,听起来像我经历了从招聘运行,“请填写此技术筛选和电子邮件的答案回到我身边,我会把它转发给雇主。“ –
它不是一个家庭工作的问题,我一直在做训练,它突然出现,但一天结束时,每个人都回家了,没有人会问。 –
@aspect:看起来他们正在训练你解答面试问题。 –