博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
子类如果不实例化则不会调用它自身的静态构造函数
阅读量:6600 次
发布时间:2019-06-24

本文共 1284 字,大约阅读时间需要 4 分钟。

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();            #endregion            Stat2.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

你可能感兴趣的文章
我的友情链接
查看>>
Exchange2010 迁移至Exchange2013 方案
查看>>
万花筒の图片服务 动静分离
查看>>
Spring学习笔记一
查看>>
福布斯:百度仿效谷歌发力移动市场
查看>>
ios开发备忘录十七
查看>>
Android经典应用程序开发
查看>>
ucos-6-系统启动和运行过程
查看>>
协议森林05 我尽力 (IP协议详解)
查看>>
backtrack查看软件版本信息
查看>>
java内存调优
查看>>
[解析苹果官方文档]之[自动布局-view.autoresizingMask]
查看>>
为什么要用PHP Migrations
查看>>
springMVC 中文乱码问题
查看>>
android 自定义组件 在 graphical layout 不显示的问题
查看>>
tomcat 目录映射
查看>>
mysql的库
查看>>
BOOTSTRAP基础学习小记(一)简介模板、全局样式-web前端
查看>>
C#如何使用数据库
查看>>
tomcat 压缩设置tomcat压缩gzip启用
查看>>