zoukankan      html  css  js  c++  java
  • C#静态构造函数

    关于C#静态构造函数的几点说明

      静态构造函数是C#的一个新特性,其实好像很少用到。不过当我们想初始化一些静态变量的时候就需要用到它了。这个构造函数是属于类的,而不是属于哪里实例的,就是说这个构造函数只会被执行一次。也就是在创建第一个实例或引用任何静态成员之前,由.NET自动调用。
    class SimpleClass
    {
        // Static constructor
        static SimpleClass()
        {
            //
        }
    }

      在使用静态构造函数的时候应该注意几点:

      1、静态构造函数既没有访问修饰符,也没有参数。因为是.NET调用的,所以像public和private等修饰符就没有意义了。
      
      2、是在创建第一个类实例或任何静态成员被引用时,.NET将自动调用静态构造函数来初始化类,也就是说我们无法直接调用静态构造函数,也就无法控制什么时候执行静态构造函数了。

      3、一个类只能有一个静态构造函数。

      4、无参数的构造函数可以与静态构造函数共存。尽管参数列表相同,但一个属于类,一个属于实例,所以不会冲突。

      5、最多只运行一次。

      6、静态构造函数不可以被继承。

      7、如果没有写静态构造函数,而类中包含带有初始值设定的静态成员,那么编译器会自动生成默认的静态构造函数。

     


    /=====================例子====================//
    using System;
    using System.Collections.Generic;
    using System.Text;

    namespace ConsoleApplication1
    {
        class Program
        {
            public class test
            {
                public static int count = 0;
                static test()
                {
                    count++; //静态构造函数里只能使用静态成员,静态构造函数只执行一次,只在类被第1次实例化时执行
                }
                public test()
                {
                    count++;
                }
            }
           
            static void Main(string[] args)
            {
                test t1 = new test();
                test t2 = new test();
                Console.WriteLine("{0}",test.count); //输出3
            }
        }
    }

  • 相关阅读:
    DC中为什么要用Uniquify?
    hdu 1596 find the safest road
    hdu2112 HDU Today
    hdu 2066 一个人的旅行
    poj 3026 Borg Maze
    poj 1979 Red and Black
    poj 1321 棋盘问题
    hdu 1010 Tempter of the Bone
    hdu 4861 Couple doubi
    codeforces584B Kolya and Tanya
  • 原文地址:https://www.cnblogs.com/perfect/p/1207456.html
Copyright © 2011-2022 走看看