浅析C#静态类,静态构造函数,静态变量
静态变量位于栈上,它是一个全局变量,在编译期就已经生成。客户端创建2个Cow的实例,并打印静态变量count。结果:0○ 在创建Cow实例之前,全局就已经有了count这个静态变量在堆和栈上的表现,如下图:在Cow类中添加一个静态构造函数。会不会在设置Cow的字段或属性值的时候触发?在客户端,通过打印静态字段count的值来了解静态构造函数什么时候被触发。○ 在为Cow的字段赋值之前,静态构造函数被触发○ 接着创建Cow实例,静态构造函数不会被再次触发○ 静态构造函数只执行一次到这里,关于静态构造函数被触发的时机,我们可以这样下结论:无论是通过构造函数创建实例,还是给类的字段或属性赋值,静态构造函数是在所有这些动作之前被触发的。
下载地址
用户评论