4
A
回答
8
刚刚访问类的第一次实例之前,每个AppDomain都会运行一次静态构造函数。你可以用它来初始化静态变量。
另一方面,每次创建类的新实例时都会运行默认构造函数。在默认构造函数中,您可以初始化实例的非静态字段。
3
静态构造函数只运行一次,无论该类型创建了多少个对象。默认的构造函数将为该构造函数创建的每个实例运行。
0
崩溃党所有人都离开后...
这两个答案都是正确的,只是想添加此链接:Static Constructors (C# Programming Guide)。
引用它们:
静态构造用于初始化任何静态数据,或执行需要被一次仅执行的特定动作。它在创建第一个实例或引用任何静态成员之前自动调用。
它们的性质:
- 静态构造函数并不需要访问修饰符或有参数。
- 自动调用静态构造函数以在创建第一个实例或引用任何静态成员之前初始化该类。
- 无法直接调用静态构造函数。
- 用户无法控制何时在程序中执行静态构造函数。
- 静态构造函数的典型用法是当类使用日志文件并使用构造函数将条目写入此文件时。
- 当构造函数可以调用LoadLibrary方法时,为非托管代码创建包装类时,静态构造函数也很有用。
- 如果静态构造函数抛出异常,则运行时不会再次调用该类型,并且该类型在运行程序的应用程序域的生命周期中保持未初始化状态。
您可以前往以上链接进行演示和示例代码。
相关问题
- 1. 构造函数和静态函数
- 2. 做默认构造函数初始化的静态变量?
- 3. 继承构造函数和默认构造函数
- 4. 构造函数和默认构造函数的区别
- 5. 默认和参数化构造函数
- 6. 类默认构造函数
- 7. 默认构造函数
- 8. 非默认构造函数
- 9. C++,默认构造函数
- 10. constexpr默认构造函数
- 11. 非默认构造函数
- 12. 公共构造函数和静态构造函数
- 13. 默认构造函数C++头和cpp
- 14. QGIS:QgsVectorLayer和QgsRasterLayer的默认构造函数?
- 15. C#类的构造函数的顺序:参数化,默认和静态?
- 16. Java - 静态构造函数
- 17. C++默认构造函数和默认参数
- 18. 静态导入和构造函数
- 19. 静态构造函数和继承
- 20. C++静态库和构造函数
- 21. Assembly.GetCallingAssembly()和静态构造函数?
- 22. 静态构造函数和BeforeFieldInit?
- 23. 静态构造函数和单
- 24. Ninject和静态构造函数方法
- 25. Objective C静态构造函数与动态构造函数
- 26. 从参数化构造函数调用默认构造函数
- 27. 默认构造函数和析构函数是否内联?
- 28. 混合默认和非默认的构造函数
- 29. 默认和默认构造函数有什么区别
- 30. 是构造函数生成的默认构造函数吗?