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)的数据,也可以用于实例之间的并发控制。