static意思是静态,可以修饰类、字段、属性、方法,但不能用于索引器、析构函数或类以外的类型。
标记为static的就不用创建实例对象调用了,可以通过类名直接点出来
1.用于变量前,表示每次重新使用该变量所在方法中樱、类或自定义类时,变量的值为程序这次运行最后一次为变量赋值时的值,这个方法称为 静态函数 。
2.在方法(函数)前用static修饰,表示此方法为所在类或所在自定义类所有,而不是这个类的实例所有,这个方法称为 静态方法 :
情况一:非静态方法:
情况2:静态方法:
3.用于class前,说明此类型无法新建实例,简单点说这个类型的方法全是静态方法,这个类里的非静态方法是不能使用的,这个类型称为 静态类 。
比如雀培孙C#控制台 *** 作的Cancle类里面的成员就被标记为静态的,可以直接用Concle.直接点出来使用。
如果没有标记为静态就顷链要通过创建实例对象来调用,比如说动态字符串StringBuilder就要new一个实例来调用
注意:
1.尽管类的实例包含该类所有实例字段的单独副本,但每个静态字段只有一个副本。
2.不可以使用this来引用静态方法或属性访问器。
3.如果对类应用static 关键字,则该类的所有成员都必须是静态的。
4.类和静态类可以有静态构造函数。 静态构造函数在程序开始和类实例化之间的某个时刻调用。
静态类:
如果一个类,被声明为静态类,那么该类不可以被实例化,也不可以被继承,同时不可以包含非静态成员。
非静态类中,可以包含静态成员。
静态方法:
静态方法中,不可以访问非静态成员。
非静态方法中,可以调用静态和非静态成员。
静态成员的生命周期是:从程序开始到程序结束。
缺点:1、整个弯瞎镇类型在程序运行期间只加载一次。 这样是对于那些经常使用的类型来说的, 那就不用每次使用前都先加载。效率高些。但是对那些不常用的类型来说。
2、如果是静态类型,那就要一直占用相当的内存;一直到程序停止。或者应用程序域被卸载。所以应该只对那些常用的类型定义成静态类型。
优点:
1、它们仅包含静态成员。
2、它们不能被实例化。
3、它们是密封的。
4、它神孙们不能包含实例构造函数(C# 编程指南)。
因此创建静态类与创建仅包含静态成员和私有构造函数的类大致一样。私有构造函数阻止类被实例化。
使用静态类的优点在于,编译器能够执行检查以确保不致偶然地添加实例成员。编译器将保证不会创建此类的实利。
静态类是密封的,因此不可被继承。静态类不能包含构造函数,但仍可声明埋粗静态构造函数以分配初始值或设置某个静态状态。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)