Questions tagged «static-constructor»

1
C ++中的静态构造函数?我需要初始化私有静态对象
我想要一个带有私有静态数据成员(包含所有字符az的向量)的类。在Java或C#中,我可以创建一个“静态构造函数”,该构造函数将在创建该类的任何实例之前运行,并设置该类的静态数据成员。它只运行一次(因为变量是只读的,只需要设置一次),并且由于它是类的函数,因此可以访问其私有成员。我可以在构造函数中添加代码,以检查向量是否已初始化,如果尚未初始化,则将其初始化,但这会引入许多必要的检查,而且似乎不是解决问题的最佳方法。 我想到,由于变量将是只读的,因此它们只能是公共静态const,因此我可以在类外设置它们一次,但是再一次,这看起来像是一个丑陋的hack。 如果我不想在实例构造函数中初始化私有静态数据成员,是否可以在类中拥有私有静态数据成员?

10
静态构造函数如何工作?
namespace MyNameSpace { static class MyClass { static MyClass() { //Authentication process.. User needs to enter password } public static void MyMethod() { //Depends on successful completion of constructor } } class Program { static void Main(string[] args) { MyClass.MyMethod(); } } } 这是我假设的顺序 静态构造函数的开始 静态构造函数的结尾 主开始 MyMethod的开始 主端 现在,在任何情况下,如果4将在2之前启动,我都会被搞砸。可能吗?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.