我怀疑静态类可以包含一个私有构造函数。我们可以在静态类中使用私有构造函数吗?
回答
静态类不能有实例构造
http://msdn.microsoft.com/en-us/library/79b3xss3.aspx
下面的列表提供了一个静态类的主要特点:
- 仅包含静态成员。
- 无法实例化。
- 密封。
- 不能包含实例构造函数。
静态类不能有任何实例构造函数(请参阅CS0710),无论是公共,私有,受保护或内部。
有关更多信息,请参阅以下文章。
Static Classes and Static Class Members (C# Programming Guide)
@jonathan:我在Reflector中查看'public static class',但只能找到'private static void .cctor()'静态构造函数。这个私人实例构造函数在哪里? – 2010-01-27 09:28:05
什么会此构造吗?该类是静态的,所以它从来没有实例化。你可以在非静态类上有一个静态构造函数来初始化静态字段,但是在静态类上,唯一有意义的构造函数是静态构造函数,并且被称为CLR。
加成:Jon Skeet posted an article对静态类的初始化的时间(通常它的初始化在第一次使用,但有时你想在程序启动时进行初始化),并在.NET 4 可能变化。
@Jonathan Wow,这很奇怪。我试图想想如何有用,但他们取而代之,我认为他们有相同的结论:) – 2010-01-27 09:16:37
@Jonathan告诉CLR一个_static_类不能被实例化为Real吗? – 2010-01-27 09:22:09
您的疑问是正确的。
一个静态类只能有一个静态构造函数,而public/private不适用,因为你的代码永远不能调用这个构造函数(CLR)。
因此,您不能在静态构造函数上使用访问修饰符(public/private/...)。
规则是静态类不能有实例构造
- 1. 使用私有构造函数和私有静态方法调用类?
- 2. 我可以在类体中默认一个私有构造函数吗?
- 3. 我们可以调用一个类的构造函数吗?
- 4. 在java中,如何使用其父类也有私有构造函数的私有构造函数创建类?
- 5. 我们可以在tclOO中定义静态函数吗?
- 6. 我们可以解构任意的数据构造函数吗?
- 7. 我可以使用boost :: make_shared和一个私有构造函数吗?
- 8. 使类构造函数私有
- 9. 静态对象如何调用私有构造函数
- 10. Javascript中的私有构造函数与静态成员
- 11. 我可以从私有构造函数调用析构函数并使用垃圾回收吗?
- 12. Java - 构造函数是静态的吗?
- 13. 在.NET中,一个类可以有虚拟构造函数吗?
- 14. 静态构造函数有用
- 15. 我们可以让Liferay在私有云中动态扩展吗?
- 16. 我们可以说再见复制构造函数吗?
- 17. 我们可以停止构造函数的运行吗?
- 18. 我们可以说构造函数创建对象吗?
- 19. 我可以在外部构造函数中为参数类型构建一个无参数构造函数吗?
- 20. 静态类C#构造函数OOP
- 21. Python静态类型的构造函数?
- 22. Python类构造函数(静态)
- 23. 我可以使复制构造函数私有,仍然使用默认实现
- 24. Java - 静态构造函数
- 25. JsonSerializationException类型与私有构造函数
- 26. 定义私有类的构造函数
- 27. 我们可以在其他类的构造函数中使用其他类的方法吗?
- 28. 我们可以中断在构造函数中创建对象
- 29. 如果基类构造函数不是constexpr,我可以构造派生类constexpr的构造函数吗?
- 30. 可以使用ocamldoc引用类型构造函数吗?
如果你有Visual Studio的(或类似)的安装,我的猜测是,它会带你不到1分钟来编译和检查自己这一点... – 2010-01-27 09:39:44
约翰,这是没有理由不问这个问题。查看常见问题。 – 2010-01-27 09:47:04