C#静态关键字的说明与使用

在C#里,静态关键字static是一个很常用的关键字。

类:对于类来说,static关键字声明的类是不可以继承也不能实例化的,只能访问它的静态属性和静态字段,与之相近的sealed关键字同样不能被继承但是可以创建新的实例。另外,扩展类必须要有static声明。以下是静态类的声明方式

public static class  A {

 /*省略代码*/

}

 

构造函数:每一个类型都会默认创建一个静态构造函数,声明的静态构造函数必须是没有参数的,它会在声明该类型时开始执行,它的所有实例都会共用这一个静态构造函数,一般用于对静态属性和字段进行初始化。

public static class A{

    static A(){

/*静态构造函数*/

   }

}

属性(Property):静态属性不需要创建实例即可使用,同一个类型的静态属性是该类型所有的实例共用的,一般用于共用数据。单例模式就是使用静态属性实现的。


public static class A

{

    private static System.Collections.Generic.Dictionary<String, Object> a1;

    public static System.Collections.Generic.Dictionary<String, Object> A1

    {

        get

        {

            if (a1 == null)

            {

                a1 = new System.Collections.Generic.Dictionary<String, Object>();

                /*为dic添加数据*/

            }

            return a1;

        }

        set

        {

            if (a1 == null || a1.Count == 0)

            {

                a1 = value;

            }

        }

    }

}

字段(Field):静态字段不需要创建实现即可使用,但是由于静态字段不可以添加代码逻辑,所以一般不对外开发,只允许类的内部使用。常用于储存静态属性(Property)的数据,也可以用于实例之间的并发控制。