C#系列之:类中的静态变量的执行数序
来源:互联网 发布:贵州旅游大数据报告 编辑:程序博客网 时间:2024/06/17 15:25
今天对静态变量的销毁作了下研究,看到网上大家各有各的说法,但最终的一致结果是:静态变量是伴随程序的消亡而销毁,就像全局变量一样,随后看到了有人在执行存在静态
变量的类中的一些计算,如下:
Bus类:
public class Bus
{
public static int datay = Trunk.data + 1;
static Bus()
{
Console.WriteLine("calling Bus");
Console.Write(datay);
}
}
Trunk类:
public class Trunk
{
public static int data = 0;
static Trunk()
{
Console.WriteLine("calling Trunk");
Console.WriteLine(data);
data = Bus.datay + 1;
}
}
Main函数:
static void Main(string[] args)
{
Console.WriteLine("Data:{0},Datay:{1}", Bus.datay, Trunk.data);
Console.ReadLine()
}
运行结果:
最终总结出:每个类都有自己的静态构造函数,而且无论是实例化类多少次,都只会执行1次给静态变量的赋值,而且
每次执行时候,先过静态变量的定义,如图:
然后再进入静态构造函数进行赋值;但是,碰到如上图断点处,发现调用到Trunk类的data变量,就会首先跳转到Trunk类的该静态变量的定义处,
,进行初始化定义,再到静态函数的赋值,执行完毕后,跳转回首次执行的位置,对该位置的变量进行初始化赋值;并且,经过此次静态构造函数的
赋值后,其它的赋值都不会对其产生影响,改变其值;
希望以上讲述能帮助到大家,可以继续讨论研究,提出质疑!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
路漫漫其修远兮吾将上下而求索的意思,程序员,一定要多思考,多研究,亲身去验证一些问题,会更扎实!作软件是一件很值得思考的事情!
- C#系列之:类中的静态变量的执行数序
- C#系列之:类中的静态变量的执行数序(补充)
- Java中的静态变量的执行顺序
- c#中的静态变量
- Java中的静态块中的局部变量以及静态变量,以及静态变量声明与静态块的执行顺序
- C#中的静态方法和静态变量的一些总结
- C#静态变量、静态方法、静态类
- C# 静态类,静态变量,静态函数
- 类中的静态变量
- 类中的静态变量
- PHP 类中的静态变量的继承
- struts2系列十六之复杂的ognl(即<s:pro…..>)变量,类,静态变量,list,map,set
- c#的静态变量和静态函数
- c#中的常量和静态变量
- 回调函数中调用类中的非静态成员变量或非静态成员函数
- 回调函数中调用类中的非静态成员变量或非静态成员函数
- 回调函数中调用类中的非静态成员变量或非静态成员函数
- 回调函数中调用类中的非静态成员变量或非静态成员函数
- 几维安全提醒勒索病毒又来袭 网络安全行业或迎机遇
- 第5条:避免创建不必要的对象
- 中企动力:用产品化思维打磨“管家服务”
- Java数据类型和MySql数据类型对应表
- servlte
- C#系列之:类中的静态变量的执行数序
- css实现loading动画效果
- C++编译预处理:宏定义指令、文件包含指令和条件编译指令
- 17 多校 3
- spring boot maven集成
- 【求知探新】独立游戏《Abi》场景耗时分析
- Day1-5.Scope of objects
- imindmap10的更新日志
- HDU6075 Questionnaire(思路,2017 HDU多校联赛 第4场)