我们可以在静态类中拥有私有构造函数吗?

时间:2010-01-27 09:09:27

标签: c#

我怀疑静态类可以包含私有构造函数。

5 个答案:

答案 0 :(得分:7)

静态类不能包含实例构造函数

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

以下列表提供了静态类的主要功能:

  
      
  • 仅包含静态成员。
  •   
  • 无法实例化。
  •   
  • 密封。
  •   
  • 不能包含实例构造函数。
  •   

答案 1 :(得分:6)

静态类不能包含任何实例构造函数(请参阅CS0710),无论是公共,私有,受保护还是内部。

有关详细信息,请参阅以下文章。

Static Classes and Static Class Members (C# Programming Guide)

答案 2 :(得分:5)

这个构造函数会做什么?该类是静态的,因此它永远不会被实例化。您可以在非静态类上使用静态构造函数来初始化静态字段,但在静态类中,唯一有意义的构造函数是静态构造函数,并且它被称为CLR。

添加Jon Skeet posted an article关于静态类初始化的时间(通常在第一次使用时初始化,但有时你想在程序启动时初始化它)和一个< em>可能在.net 4中更改。

答案 3 :(得分:4)

你的疑问是正确的。

静态类只能有一个静态构造函数,而public / private不适用,因为你的代码永远不能调用这个构造函数(CLR会这样做)。

因此,您不能在静态构造函数上使用访问修饰符(public / private / ...)。

答案 4 :(得分:2)

规则是静态类,不能有实例构造函数