C# static 静态构造函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# static 静态构造函数相关的知识,希望对你有一定的参考价值。

static   静态构造函数,

1、用于对静态数据的初始化

2、前面不能有参数不能有修饰符,不能被调用

3、当类被加载时,类的静态构造函数自动被调用,最多只执行一次

class Program
    {
        private static int count = 0;
        static Program()
        {
            Console.WriteLine("我是静态构造函数,我被加载了!");
            count++;
            Console.WriteLine(count);
        }
        public Program()
        {
            Console.WriteLine("我是公共构造函数,我被加载了!");
            count++;
        }
        static void Main(string[] args)
        {
            Program o1 = new Program();//在此处两个构造函数都调用
            Console.WriteLine("----------");
            Program o2 = new Program();//只调用第二个构造函数
            Console.WriteLine(count);
            Console.Read();
        }
    }
    
    /* 代码运行结果:
    
    我是静态构造函数,我被加载了!
    1
    我是公共构造函数,我被加载了!
    ----------
    我是公共构造函数,我被加载了!
    3
    
    */


还有就是关于构造函数前面不能有访问修饰符,默认的是public,如果改为private和protected之类的修饰符的话是不行,因为private的访问权限只能使本类中,这就说明了如果外部要实例化此类的一个对象的话就不行了,其他的同理。


以上是关于C# static 静态构造函数的主要内容,如果未能解决你的问题,请参考以下文章

C#中static静态变量的用法

静态代码块构造代码块构造函数的执行

Java之static静态代码块

总结C++与C#中的static静态修饰符

java中静态代码块构造代码块构造方法main函数的执行顺序?

static关键字&&静态代码块