子类如果不实例化则不会调用它自身的静态构造函数
生活随笔
收集整理的這篇文章主要介紹了
子类如果不实例化则不会调用它自身的静态构造函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace ConsoleApplication6
{class Program{static void Main(string[] args){#region 如果注釋掉, 則Stat2.Instance為null 報錯Stat1.DoSth();Stat2 st2 = new Stat2();#endregionStat2.DoSth();Console.ReadKey();}}class Stat1{public static Stat1 Instance;//static Stat1()//{// Console.WriteLine("Stat1 Static Structor");//}public static void DoSth(){Instance.Do();}static Stat1(){Console.WriteLine("Stat1 Static Costructor");Instance = new Stat1();}public virtual void Do(){Console.WriteLine("Stat1 Do");}}class Stat2 : Stat1{static Stat2(){Console.WriteLine("Stat2 Static Costructor");Instance = new Stat2();}public override void Do(){Console.WriteLine("Stat2 Do");}}
}
Stat1這個基類如果不實例化,直接使用它的靜態方法,是先調用了它靜態構造函數的。
但是Stat2這個子類如果不實例化,則既不會調用Stat1基類的構造函數,也不會調用Stat2它自己的靜態構造函數。
這是不是很奇怪?
轉載于:https://www.cnblogs.com/bwangel/p/static-constructor.html
總結
以上是生活随笔為你收集整理的子类如果不实例化则不会调用它自身的静态构造函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第一节 HTML DOM
- 下一篇: Exchange Server2013