我想执行一个类的静态构造函数(即我想“加载”类),而不创build一个实例。 我怎么做? 奖金问题:.NET 4和旧版本有什么区别吗? 编辑: 这个类不是静态的。 我想在创build实例之前运行它,因为它需要一段时间才能运行,而且我希望在第一次访问时避免这种延迟。 静态ctor初始化private static readonly字段,因此不能在方法中运行。
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之前开始,我拧。 可能吗?
我想有一个私有的静态数据成员(包含所有字符az的向量)的类。 在java或C#中,我可以创build一个“静态构造函数”,它将在我创build类的任何实例之前运行,并设置类的静态数据成员。 它只运行一次(因为variables是只读的,只需要设置一次),因为它是类的函数,它可以访问其私有成员。 我可以在构造函数中添加代码,以检查向量是否已初始化,如果不是,则会初始化代码,但引入了许多必要的检查,看起来并不是问题的最佳解决scheme。 我想到,由于variables是只读的,所以它们可以是公共的静态常量,所以我可以在课堂以外设置它们,但是再一次,它看起来有点像一个丑陋的黑客。 如果我不想在实例构造函数中初始化它们,是否有可能在类中有私有静态数据成员?
请向我解释静态构造函数的用法。 为什么和什么时候我们会创build一个静态构造函数,并有可能超载一个?