1、Static关键字含意:static译文是静态的,静止的,因此使用 static
修饰符声明属于类型本身而不是属于特定对象(new创建的对象)的静态成员。
2、修饰使用范围 static
修饰符可用于类、字段、方法、属性、运算符、事件和构造函数,但不能用于索引器、析构函数或类以外的类型
3、static修饰类时,类的所有成员必须使用static修饰。
static修饰的类主要是不会变化的类,这样在使用时不用(也不能)反复实例化,避免反复的存储分配操作。不能被继承。
但是由于类是静态的在程序运行生命周期内会一直存在,直到生命周期结束。具体生命周期多久,请大神指教。
static修饰的类做类的设计的时候,如果类是与状态无关的类,建议将其设计为static类。如System.Math类
4、static修饰字段时,字段所在的容器类不必是static类。当容器类是static修饰时同3.
当容器类是非static类时,static修饰的字段归对象所有,不能通过实例对象.字段名方式读取/设置字段值。只能通过类.字段名方式读取/设置字段值。
5、static用于方法时,该方法只能通过类.方法名进行调用;同时如果static修饰方法内调用类其他方法或者字段,那么这些成员必须是static修饰的。
6、static用于构造函数时,如果类未使用static修饰,那么static在类实例化生成对象前执行static构造函数。static构造函数不能有参数。
7、static主要用途:扩展方法操作Linq中大量使用了扩展方法。单例模式中使用static效率更好。
参考文献
C#完全参考手册