Static变量在Debug和Release模式下的初始化顺序偶有差异新建一个简单的Console项目,包含三个class: Helper.cs是一个工具类,提供一些静态的方法:
Tester.cs是一个含有静态变量的类:
Program.cs中的Main函数初始化Tester类的一个实例。 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace StaticMember { class Program { static void Main(string[] args) { Console.WriteLine( "Step 1. <Program.Main> Before create an instance of Tester class. "); Tester tester = new Tester(); //Tester.Init(); Console.Read(); } } } 按一般逻辑,应该是先显示Step1….., 然后再显示Step 2….。在Dubug模式下确实如此: 在Release模式下,若直接在Vs.net中按F5运行也是显示上图结果,但若按“Ctrl+F5”键运行或直接点击“bin/release/StaticMember.exe”文件运行,则显示的是如下顺序:
甚是奇怪,未得其解! ======================================================================= 野文(Jasson Qian) |
|