1. 程式人生 > >C# 靜態構造函數,靜態變量執行順序(升華版)

C# 靜態構造函數,靜態變量執行順序(升華版)

bsp out div 執行順序 ram only pub contain sta

上篇 是基本語法基礎下的執行順序,包括繼承這個維度下的執行順序,我們可以依照的規律順下來,下面我們看下一些摸不到頭腦的情況

我們實驗 一個 類中的方法 去調用另一個非繼承類的情況, 先看有 靜態構造函數 和沒有靜態構造函數執行的差別


 class Program
    {
        static void Main(string[] args)
        {                                           //執行順序5         
            var de = new People("2");               //執行順序6     
            People.Instance.OutDemo();              //執行順序8


            Console.ReadKey();                     //執行順序10
        }

    }

    public class People
    {
        public void OutDemo()                       
        {                                       //執行順序9
            Console.WriteLine($"HaHa");
        }

        public static readonly People Instance = new People();        //執行順序1


        public static Action Inssstance = () => { Console.WriteLine("11"); };      //執行順序4

        private People()                       
        {                                      //執行順序2
            Console.WriteLine(3);               //執行順序3
        }

        public People(string ss)                  
        {                                     //執行順序7
          
        }
    }

C# 靜態構造函數,靜態變量執行順序(升華版)