首页 新闻 会员 周边

关于实例构造函数与静态构造函数

0
[已关闭问题]

这两个函数不太明白啊~

很是抽象。

疯狂的兔子2010的主页 疯狂的兔子2010 | 初学一级 | 园豆:200
提问于:2010-03-12 18:48
< >
分享
其他回答(2)
0

没分呀!

 

静态构造函数就是给类中哪些静态字段赋值的函数---将就着这么理解吧。它总是早于实例构造函数运行。

自由飞 | 园豆:174 (初学一级) | 2010-03-12 23:17
0

public class class1

{

  static class1(){} //仅在第一次实例化时执行(如果多线程同时访问,会确保只执行一次),并且只能是私有的(C#会自动标记为private,不允许手动标注修饰符)。

  public class1(){} //每次实例化都会执行

}

public class class2

{

  void main()

  {

    class1 a = new class1(); //1,执行静态构造函数,2执行实例构造函数

    class1 b = new class1();//执行实例构造函数

    class1 c = new class1();//执行实例构造函数

    ......

  }

}

vons | 园豆:1033 (小虾三级) | 2010-03-13 00:37
0

我来补充个比较全面的吧!

1、静态构造函数不能带任何参数,一个类只能有一个静态构造函数。 构造函数参数数目不定,可以根据需求设定,一个类可以有多个构造函数(重载)。
2、静态构造函数的执行具有不定性,你只能确保静态构造函数在第一次调用类的成员之前执行,并且静态构造函数至多执行一次。构造函数:只要创建类的实例,都会执行,具有时间的可把握性。
3、静态构造函数没有修饰符。
注意:无参数的实例构造函数可以在类中与静态构造函数安全共存。尽管参数列表是相同的,但这并不茅盾,因为静态构造函数是在加载类时执行的,而实例构造函数是在创建实例时执行,所以构造函数的执行的不会有冲突的。

另外可参考静态构造函数。  区分构造函数、析构函数、静态构造函数、私有构造函数

西越泽 | 园豆:10775 (专家六级) | 2010-03-13 16:35
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册